Added ability to confirm recovery email from Api::CloudPassword.

This commit is contained in:
23rd 2022-05-07 05:03:41 +03:00
parent 2f9dc6ca2a
commit 9f155e0053
2 changed files with 43 additions and 0 deletions

View File

@ -330,4 +330,44 @@ rpl::producer<rpl::no_value, QString> CloudPassword::check(
};
}
rpl::producer<rpl::no_value, QString> CloudPassword::confirmEmail(
const QString &code) {
return [=](auto consumer) {
_api.request(MTPaccount_ConfirmPasswordEmail(
MTP_string(code)
)).done([=] {
_api.request(MTPaccount_GetPassword(
)).done([=](const MTPaccount_Password &result) {
apply(ProcessMtpState(result));
consumer.put_done();
}).fail([=](const MTP::Error &error) {
consumer.put_error_copy(error.type());
}).send();
}).fail([=](const MTP::Error &error) {
consumer.put_error_copy(error.type());
}).handleFloodErrors().send();
return rpl::lifetime();
};
}
rpl::producer<rpl::no_value, QString> CloudPassword::resendEmailCode() {
return [=](auto consumer) {
_api.request(MTPaccount_ResendPasswordEmail(
)).done([=] {
_api.request(MTPaccount_GetPassword(
)).done([=](const MTPaccount_Password &result) {
apply(ProcessMtpState(result));
consumer.put_done();
}).fail([=](const MTP::Error &error) {
consumer.put_error_copy(error.type());
}).send();
}).fail([=](const MTP::Error &error) {
consumer.put_error_copy(error.type());
}).handleFloodErrors().send();
return rpl::lifetime();
};
}
} // namespace Api

View File

@ -46,6 +46,9 @@ public:
const QString &recoveryEmail);
rpl::producer<rpl::no_value, QString> check(const QString &password);
rpl::producer<rpl::no_value, QString> confirmEmail(const QString &code);
rpl::producer<rpl::no_value, QString> resendEmailCode();
private:
void apply(Core::CloudPasswordState state);