aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--telegram-bot-api/Client.cpp23
-rw-r--r--telegram-bot-api/Client.h1
2 files changed, 24 insertions, 0 deletions
diff --git a/telegram-bot-api/Client.cpp b/telegram-bot-api/Client.cpp
index c92f1e0..833278a 100644
--- a/telegram-bot-api/Client.cpp
+++ b/telegram-bot-api/Client.cpp
@@ -271,6 +271,7 @@ bool Client::init_methods() {
methods_.emplace("editmessagereplymarkup", &Client::process_edit_message_reply_markup_query);
methods_.emplace("editephemeralmessagetext", &Client::process_edit_ephemeral_message_text_query);
methods_.emplace("editephemeralmessagecaption", &Client::process_edit_ephemeral_message_caption_query);
+ methods_.emplace("editephemeralmessagereplymarkup", &Client::process_edit_ephemeral_message_reply_markup_query);
methods_.emplace("deletemessage", &Client::process_delete_message_query);
methods_.emplace("deletemessages", &Client::process_delete_messages_query);
methods_.emplace("deleteephemeralmessage", &Client::process_delete_ephemeral_message_query);
@@ -14870,6 +14871,28 @@ td::Status Client::process_edit_ephemeral_message_caption_query(PromisedQueryPtr
return td::Status::OK();
}
+td::Status Client::process_edit_ephemeral_message_reply_markup_query(PromisedQueryPtr &query) {
+ auto chat_id = query->arg("chat_id");
+ TRY_RESULT(receiver_user_id, get_user_id(query.get(), "receiver_user_id"));
+ auto ephemeral_message_id = get_integer_arg(query.get(), "ephemeral_message_id", 0);
+ TRY_RESULT(reply_markup, get_reply_markup(query.get(), bot_user_ids_));
+
+ resolve_reply_markup_bot_usernames(
+ std::move(reply_markup), std::move(query),
+ [this, chat_id_str = chat_id.str(), receiver_user_id, ephemeral_message_id](
+ object_ptr<td_api::ReplyMarkup> reply_markup, PromisedQueryPtr query) mutable {
+ check_chat(chat_id_str, AccessRights::Edit, std::move(query),
+ [this, receiver_user_id, ephemeral_message_id, reply_markup = std::move(reply_markup)](
+ int64 chat_id, PromisedQueryPtr query) mutable {
+ send_request(
+ make_object<td_api::editEphemeralMessage>(chat_id, receiver_user_id, ephemeral_message_id,
+ std::move(reply_markup), nullptr),
+ td::make_unique<TdOnOkQueryCallback>(std::move(query)));
+ });
+ });
+ return td::Status::OK();
+}
+
td::Status Client::process_delete_message_query(PromisedQueryPtr &query) {
auto chat_id = query->arg("chat_id");
auto message_id = get_message_id(query.get());
diff --git a/telegram-bot-api/Client.h b/telegram-bot-api/Client.h
index 68751de..0b40bb9 100644
--- a/telegram-bot-api/Client.h
+++ b/telegram-bot-api/Client.h
@@ -889,6 +889,7 @@ class Client final : public WebhookActor::Callback {
td::Status process_edit_message_reply_markup_query(PromisedQueryPtr &query);
td::Status process_edit_ephemeral_message_text_query(PromisedQueryPtr &query);
td::Status process_edit_ephemeral_message_caption_query(PromisedQueryPtr &query);
+ td::Status process_edit_ephemeral_message_reply_markup_query(PromisedQueryPtr &query);
td::Status process_delete_message_query(PromisedQueryPtr &query);
td::Status process_delete_messages_query(PromisedQueryPtr &query);
td::Status process_delete_ephemeral_message_query(PromisedQueryPtr &query);