diff --git a/telegram-bot-api/Client.cpp b/telegram-bot-api/Client.cpp index a5873df..dc185bb 100644 --- a/telegram-bot-api/Client.cpp +++ b/telegram-bot-api/Client.cpp @@ -6804,6 +6804,14 @@ td::Result>> Client::get_inp return std::move(stickers); } +td::Result> Client::get_sticker_input_file(const Query *query) { + auto file_id = trim(query->arg("sticker")); + if (file_id.empty()) { + return Status::Error(400, "Sticker is not specified"); + } + return make_object(file_id.str()); +} + td::Result Client::get_passport_element_hash(Slice encoded_hash) { if (!td::is_base64(encoded_hash)) { return Status::Error(400, "hash isn't a valid base64-encoded string"); @@ -9248,25 +9256,18 @@ td::Status Client::process_set_custom_emoji_sticker_set_thumbnail_query(Promised } td::Status Client::process_set_sticker_position_in_set_query(PromisedQueryPtr &query) { - auto file_id = trim(query->arg("sticker")); - if (file_id.empty()) { - return Status::Error(400, "Sticker is not specified"); - } + TRY_RESULT(input_file, get_sticker_input_file(query.get())); int32 position = get_integer_arg(query.get(), "position", -1); - send_request( - make_object(make_object(file_id.str()), position), - td::make_unique(std::move(query))); + send_request(make_object(std::move(input_file), position), + td::make_unique(std::move(query))); return Status::OK(); } td::Status Client::process_delete_sticker_from_set_query(PromisedQueryPtr &query) { - auto file_id = trim(query->arg("sticker")); - if (file_id.empty()) { - return Status::Error(400, "Sticker is not specified"); - } + TRY_RESULT(input_file, get_sticker_input_file(query.get())); - send_request(make_object(make_object(file_id.str())), + send_request(make_object(std::move(input_file)), td::make_unique(std::move(query))); return Status::OK(); } diff --git a/telegram-bot-api/Client.h b/telegram-bot-api/Client.h index 99f2d5e..e9b24eb 100644 --- a/telegram-bot-api/Client.h +++ b/telegram-bot-api/Client.h @@ -414,6 +414,8 @@ class Client final : public WebhookActor::Callback { td::Result>> get_input_stickers( const Query *query, object_ptr &sticker_format) const; + static td::Result> get_sticker_input_file(const Query *query); + static td::Result get_passport_element_hash(Slice encoded_hash); static td::Result> get_passport_element_error_source(