diff options
| author | levlam <levlam@telegram.org> | 2024-05-24 14:43:30 +0300 |
|---|---|---|
| committer | levlam <levlam@telegram.org> | 2024-05-24 14:43:30 +0300 |
| commit | d624f49e43c09f52b8cfd4c7a67bb9293c63caae (patch) | |
| tree | 68c98ad029b3d3abdab75cb18c5146d22f570872 /td/telegram/Payments.cpp | |
| parent | 62acb0aecd8df593595b4b243da604fedf91d857 (diff) | |
Add td_api::refundStarPayment.
Diffstat (limited to 'td/telegram/Payments.cpp')
| -rw-r--r-- | td/telegram/Payments.cpp | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/td/telegram/Payments.cpp b/td/telegram/Payments.cpp index fcc24984a..85724ee10 100644 --- a/td/telegram/Payments.cpp +++ b/td/telegram/Payments.cpp @@ -868,6 +868,34 @@ class ExportInvoiceQuery final : public Td::ResultHandler { } }; +class RefundStarsChargeQuery final : public Td::ResultHandler { + Promise<Unit> promise_; + + public: + explicit RefundStarsChargeQuery(Promise<Unit> &&promise) : promise_(std::move(promise)) { + } + + void send(telegram_api::object_ptr<telegram_api::InputUser> &&input_user, const string &telegram_payment_charge_id) { + send_query(G()->net_query_creator().create( + telegram_api::payments_refundStarsCharge(std::move(input_user), telegram_payment_charge_id))); + } + + void on_result(BufferSlice packet) final { + auto result_ptr = fetch_result<telegram_api::payments_refundStarsCharge>(packet); + if (result_ptr.is_error()) { + return on_error(result_ptr.move_as_error()); + } + + auto ptr = result_ptr.move_as_ok(); + LOG(DEBUG) << "Receive result for RefundStarsChargeQuery: " << to_string(ptr); + td_->updates_manager_->on_get_updates(std::move(ptr), std::move(promise_)); + } + + void on_error(Status status) final { + promise_.set_error(std::move(status)); + } +}; + class GetBankCardInfoQuery final : public Td::ResultHandler { Promise<td_api::object_ptr<td_api::bankCardInfo>> promise_; @@ -1130,6 +1158,12 @@ void export_invoice(Td *td, td_api::object_ptr<td_api::InputMessageContent> &&in td->create_handler<ExportInvoiceQuery>(std::move(promise))->send(std::move(input_media)); } +void refund_star_payment(Td *td, UserId user_id, const string &telegram_payment_charge_id, Promise<Unit> &&promise) { + TRY_RESULT_PROMISE(promise, input_user, td->user_manager_->get_input_user(user_id)); + td->create_handler<RefundStarsChargeQuery>(std::move(promise)) + ->send(std::move(input_user), telegram_payment_charge_id); +} + void get_bank_card_info(Td *td, const string &bank_card_number, Promise<td_api::object_ptr<td_api::bankCardInfo>> &&promise) { td->create_handler<GetBankCardInfoQuery>(std::move(promise))->send(bank_card_number); |
