diff options
| author | levlam <levlam@telegram.org> | 2024-07-25 18:09:09 +0300 |
|---|---|---|
| committer | levlam <levlam@telegram.org> | 2024-07-25 18:09:09 +0300 |
| commit | 83be2c698cc3adcddb4f2be386622621dd146419 (patch) | |
| tree | 6cfc951a04d915af73b553d71cc6d32af166b7f0 /td/telegram/Payments.cpp | |
| parent | d20a3f1552ee5cea774debd188a096efceded3f2 (diff) | |
Add td_api::telegramPaymentPurposeJoinChat.
Diffstat (limited to 'td/telegram/Payments.cpp')
| -rw-r--r-- | td/telegram/Payments.cpp | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/td/telegram/Payments.cpp b/td/telegram/Payments.cpp index db033671c..b560a6c4a 100644 --- a/td/telegram/Payments.cpp +++ b/td/telegram/Payments.cpp @@ -8,10 +8,12 @@ #include "td/telegram/AccessRights.h" #include "td/telegram/DialogId.h" +#include "td/telegram/DialogInviteLink.h" #include "td/telegram/DialogManager.h" #include "td/telegram/GiveawayParameters.h" #include "td/telegram/Global.h" #include "td/telegram/InputInvoice.h" +#include "td/telegram/LinkManager.h" #include "td/telegram/MessageEntity.h" #include "td/telegram/MessageId.h" #include "td/telegram/MessagesManager.h" @@ -151,6 +153,18 @@ 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::telegramPaymentPurposeJoinChat::ID: { + auto p = static_cast<td_api::telegramPaymentPurposeJoinChat *>(invoice->purpose_.get()); + if (!DialogInviteLink::is_valid_invite_link(p->invite_link_)) { + return Status::Error(400, "Invalid invite link"); + } + auto hash = LinkManager::get_dialog_invite_link_hash(p->invite_link_); + if (!clean_input_string(hash)) { + return Status::Error(400, "Invalid invite link"); + } + result.input_invoice_ = telegram_api::make_object<telegram_api::inputInvoiceChatInviteSubscription>(hash); + break; + } default: UNREACHABLE(); } |
