From d6824ed788572252ada5cbed8efd79bac19ea440 Mon Sep 17 00:00:00 2001 From: levlam Date: Fri, 14 Jun 2024 22:43:24 +0300 Subject: [PATCH] Return Result from get_input_bot_inline_message_id. --- td/telegram/InlineMessageManager.cpp | 53 +++++++++------------------- 1 file changed, 17 insertions(+), 36 deletions(-) diff --git a/td/telegram/InlineMessageManager.cpp b/td/telegram/InlineMessageManager.cpp index a16022c08..8eb5851cf 100644 --- a/td/telegram/InlineMessageManager.cpp +++ b/td/telegram/InlineMessageManager.cpp @@ -46,7 +46,7 @@ static int32 get_inline_message_dc_id( } } -static telegram_api::object_ptr get_input_bot_inline_message_id( +static telegram_api::object_ptr parse_input_bot_inline_message_id( const string &inline_message_id) { auto r_binary = base64url_decode(inline_message_id); if (r_binary.is_error()) { @@ -67,6 +67,15 @@ static telegram_api::object_ptr get_input return result; } +static Result> get_input_bot_inline_message_id( + const string &inline_message_id) { + auto result = parse_input_bot_inline_message_id(inline_message_id); + if (result == nullptr) { + return Status::Error(400, "Invalid inline message identifier specified"); + } + return std::move(result); +} + class EditInlineMessageQuery final : public Td::ResultHandler { Promise promise_; @@ -232,11 +241,7 @@ void InlineMessageManager::edit_inline_message_text( process_input_message_text(td_, DialogId(), std::move(input_message_content), td_->auth_manager_->is_bot())); TRY_RESULT_PROMISE(promise, new_reply_markup, get_reply_markup(std::move(reply_markup), td_->auth_manager_->is_bot(), true, false, true)); - - auto input_bot_inline_message_id = get_input_bot_inline_message_id(inline_message_id); - if (input_bot_inline_message_id == nullptr) { - return promise.set_error(Status::Error(400, "Invalid inline message identifier specified")); - } + TRY_RESULT_PROMISE(promise, input_bot_inline_message_id, get_input_bot_inline_message_id(inline_message_id)); td_->create_handler(std::move(promise)) ->send(std::move(input_bot_inline_message_id), true, input_message_text.text.text, @@ -255,11 +260,7 @@ void InlineMessageManager::edit_inline_message_live_location(const string &inlin TRY_RESULT_PROMISE(promise, new_reply_markup, get_reply_markup(std::move(reply_markup), td_->auth_manager_->is_bot(), true, false, true)); - - auto input_bot_inline_message_id = get_input_bot_inline_message_id(inline_message_id); - if (input_bot_inline_message_id == nullptr) { - return promise.set_error(Status::Error(400, "Invalid inline message identifier specified")); - } + TRY_RESULT_PROMISE(promise, input_bot_inline_message_id, get_input_bot_inline_message_id(inline_message_id)); Location location(input_location); if (location.empty() && input_location != nullptr) { @@ -311,11 +312,7 @@ void InlineMessageManager::edit_inline_message_media( TRY_RESULT_PROMISE(promise, new_reply_markup, get_reply_markup(std::move(reply_markup), td_->auth_manager_->is_bot(), true, false, true)); - - auto input_bot_inline_message_id = get_input_bot_inline_message_id(inline_message_id); - if (input_bot_inline_message_id == nullptr) { - return promise.set_error(Status::Error(400, "Invalid inline message identifier specified")); - } + TRY_RESULT_PROMISE(promise, input_bot_inline_message_id, get_input_bot_inline_message_id(inline_message_id)); auto input_media = get_input_media(content.content.get(), td_, MessageSelfDestructType(), string(), true); if (input_media == nullptr) { @@ -341,11 +338,7 @@ void InlineMessageManager::edit_inline_message_caption(const string &inline_mess td_->auth_manager_->is_bot(), true, false, false)); TRY_RESULT_PROMISE(promise, new_reply_markup, get_reply_markup(std::move(reply_markup), td_->auth_manager_->is_bot(), true, false, true)); - - auto input_bot_inline_message_id = get_input_bot_inline_message_id(inline_message_id); - if (input_bot_inline_message_id == nullptr) { - return promise.set_error(Status::Error(400, "Invalid inline message identifier specified")); - } + TRY_RESULT_PROMISE(promise, input_bot_inline_message_id, get_input_bot_inline_message_id(inline_message_id)); td_->create_handler(std::move(promise)) ->send(std::move(input_bot_inline_message_id), true, caption.text, @@ -360,11 +353,7 @@ void InlineMessageManager::edit_inline_message_reply_markup(const string &inline TRY_RESULT_PROMISE(promise, new_reply_markup, get_reply_markup(std::move(reply_markup), td_->auth_manager_->is_bot(), true, false, true)); - - auto input_bot_inline_message_id = get_input_bot_inline_message_id(inline_message_id); - if (input_bot_inline_message_id == nullptr) { - return promise.set_error(Status::Error(400, "Invalid inline message identifier specified")); - } + TRY_RESULT_PROMISE(promise, input_bot_inline_message_id, get_input_bot_inline_message_id(inline_message_id)); td_->create_handler(std::move(promise)) ->send(std::move(input_bot_inline_message_id), false, string(), @@ -376,11 +365,7 @@ void InlineMessageManager::set_inline_game_score(const string &inline_message_id int32 score, bool force, Promise &&promise) { CHECK(td_->auth_manager_->is_bot()); - auto input_bot_inline_message_id = get_input_bot_inline_message_id(inline_message_id); - if (input_bot_inline_message_id == nullptr) { - return promise.set_error(Status::Error(400, "Invalid inline message identifier specified")); - } - + TRY_RESULT_PROMISE(promise, input_bot_inline_message_id, get_input_bot_inline_message_id(inline_message_id)); TRY_RESULT_PROMISE(promise, input_user, td_->user_manager_->get_input_user(user_id)); td_->create_handler(std::move(promise)) @@ -391,11 +376,7 @@ void InlineMessageManager::get_inline_game_high_scores(const string &inline_mess Promise> &&promise) { CHECK(td_->auth_manager_->is_bot()); - auto input_bot_inline_message_id = get_input_bot_inline_message_id(inline_message_id); - if (input_bot_inline_message_id == nullptr) { - return promise.set_error(Status::Error(400, "Invalid inline message identifier specified")); - } - + TRY_RESULT_PROMISE(promise, input_bot_inline_message_id, get_input_bot_inline_message_id(inline_message_id)); TRY_RESULT_PROMISE(promise, input_user, td_->user_manager_->get_input_user(user_id)); td_->create_handler(std::move(promise))