aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorlevlam <levlam@telegram.org>2026-05-27 15:04:38 +0300
committerlevlam <levlam@telegram.org>2026-05-27 15:04:38 +0300
commite0ce7b3c71af226b693d190611068cd18e12bcee (patch)
tree40d5e6807a13e26ae68edc406388b2938ddfad60
parent6c707386520c155d00737d72da9b74ab26f28f37 (diff)
Add answerChatJoinRequestQuery.
-rw-r--r--telegram-bot-api/Client.cpp20
-rw-r--r--telegram-bot-api/Client.h1
2 files changed, 21 insertions, 0 deletions
diff --git a/telegram-bot-api/Client.cpp b/telegram-bot-api/Client.cpp
index d7bafeb..6340d07 100644
--- a/telegram-bot-api/Client.cpp
+++ b/telegram-bot-api/Client.cpp
@@ -296,6 +296,7 @@ bool Client::init_methods() {
methods_.emplace("answerwebappquery", &Client::process_answer_web_app_query_query);
methods_.emplace("answerguestquery", &Client::process_answer_guest_query_query);
methods_.emplace("answerinlinequery", &Client::process_answer_inline_query_query);
+ methods_.emplace("answerchatjoinrequestquery", &Client::process_answer_chat_join_request_query_query);
methods_.emplace("savepreparedinlinemessage", &Client::process_save_prepared_inline_message_query);
methods_.emplace("savepreparedkeyboardbutton", &Client::process_save_prepared_keyboard_button_query);
methods_.emplace("answercallbackquery", &Client::process_answer_callback_query_query);
@@ -14423,6 +14424,25 @@ td::Status Client::process_answer_inline_query_query(PromisedQueryPtr &query) {
return td::Status::OK();
}
+td::Status Client::process_answer_chat_join_request_query_query(PromisedQueryPtr &query) {
+ auto query_id = td::to_integer<int64>(query->arg("chat_join_request_query_id"));
+ auto result_str = td::to_lower(td::trim(query->arg("result")));
+ object_ptr<td_api::ChatJoinRequestResult> result;
+ if (result_str == "approve") {
+ result = make_object<td_api::chatJoinRequestResultApproved>();
+ } else if (result_str == "decline") {
+ result = make_object<td_api::chatJoinRequestResultDeclined>();
+ } else if (result_str == "queue") {
+ result = make_object<td_api::chatJoinRequestResultQueued>();
+ } else {
+ return td::Status::Error(400, "Invalid query result specified");
+ }
+
+ send_request(make_object<td_api::answerChatJoinRequestQuery>(query_id, std::move(result), td::string()),
+ td::make_unique<TdOnOkQueryCallback>(std::move(query)));
+ return td::Status::OK();
+}
+
td::Status Client::process_save_prepared_inline_message_query(PromisedQueryPtr &query) {
TRY_RESULT(user_id, get_user_id(query.get()));
TRY_RESULT(result, get_inline_query_result(query.get(), bot_user_ids_));
diff --git a/telegram-bot-api/Client.h b/telegram-bot-api/Client.h
index 5dd5741..d9397dc 100644
--- a/telegram-bot-api/Client.h
+++ b/telegram-bot-api/Client.h
@@ -856,6 +856,7 @@ class Client final : public WebhookActor::Callback {
td::Status process_answer_web_app_query_query(PromisedQueryPtr &query);
td::Status process_answer_guest_query_query(PromisedQueryPtr &query);
td::Status process_answer_inline_query_query(PromisedQueryPtr &query);
+ td::Status process_answer_chat_join_request_query_query(PromisedQueryPtr &query);
td::Status process_save_prepared_inline_message_query(PromisedQueryPtr &query);
td::Status process_save_prepared_keyboard_button_query(PromisedQueryPtr &query);
td::Status process_answer_callback_query_query(PromisedQueryPtr &query);