aboutsummaryrefslogtreecommitdiffhomepage
path: root/td/telegram/Payments.cpp
diff options
context:
space:
mode:
authorlevlam <levlam@telegram.org>2024-07-10 14:38:28 +0300
committerlevlam <levlam@telegram.org>2024-07-10 14:38:28 +0300
commit55391a53556f3f276fff0bfb6df5092f8cc54947 (patch)
treedd838cedcb1d09587912e0a7a9cfe6559feba676 /td/telegram/Payments.cpp
parent0bacb9fac2acf4525399b7d7fddfe65562b0aa76 (diff)
Add td_api::telegramPaymentPurposeGiftedStars.
Diffstat (limited to 'td/telegram/Payments.cpp')
-rw-r--r--td/telegram/Payments.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/td/telegram/Payments.cpp b/td/telegram/Payments.cpp
index 9799d324f..db033671c 100644
--- a/td/telegram/Payments.cpp
+++ b/td/telegram/Payments.cpp
@@ -136,6 +136,21 @@ Result<InputInvoiceInfo> get_input_invoice_info(Td *td, td_api::object_ptr<td_ap
result.input_invoice_ = telegram_api::make_object<telegram_api::inputInvoiceStars>(std::move(purpose));
break;
}
+ case td_api::telegramPaymentPurposeGiftedStars::ID: {
+ auto p = static_cast<td_api::telegramPaymentPurposeGiftedStars *>(invoice->purpose_.get());
+ UserId user_id(p->user_id_);
+ TRY_RESULT(input_user, td->user_manager_->get_input_user(user_id));
+ if (p->amount_ <= 0 || !check_currency_amount(p->amount_)) {
+ return Status::Error(400, "Invalid amount of the currency specified");
+ }
+ if (!clean_input_string(p->currency_)) {
+ return Status::Error(400, "Strings must be encoded in UTF-8");
+ }
+ auto purpose = telegram_api::make_object<telegram_api::inputStorePaymentStarsGift>(
+ std::move(input_user), p->star_count_, p->currency_, p->amount_);
+ result.input_invoice_ = telegram_api::make_object<telegram_api::inputInvoiceStars>(std::move(purpose));
+ break;
+ }
default:
UNREACHABLE();
}