aboutsummaryrefslogtreecommitdiffhomepage
path: root/td/telegram/Payments.cpp
diff options
context:
space:
mode:
authorlevlam <levlam@telegram.org>2024-07-25 18:09:09 +0300
committerlevlam <levlam@telegram.org>2024-07-25 18:09:09 +0300
commit83be2c698cc3adcddb4f2be386622621dd146419 (patch)
tree6cfc951a04d915af73b553d71cc6d32af166b7f0 /td/telegram/Payments.cpp
parentd20a3f1552ee5cea774debd188a096efceded3f2 (diff)
Add td_api::telegramPaymentPurposeJoinChat.
Diffstat (limited to 'td/telegram/Payments.cpp')
-rw-r--r--td/telegram/Payments.cpp14
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();
}