diff options
| author | levlam <levlam@telegram.org> | 2026-05-27 15:04:38 +0300 |
|---|---|---|
| committer | levlam <levlam@telegram.org> | 2026-05-27 15:04:38 +0300 |
| commit | e0ce7b3c71af226b693d190611068cd18e12bcee (patch) | |
| tree | 40d5e6807a13e26ae68edc406388b2938ddfad60 | |
| parent | 6c707386520c155d00737d72da9b74ab26f28f37 (diff) | |
Add answerChatJoinRequestQuery.
| -rw-r--r-- | telegram-bot-api/Client.cpp | 20 | ||||
| -rw-r--r-- | telegram-bot-api/Client.h | 1 |
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); |
