diff --git a/telegram-bot-api/Client.cpp b/telegram-bot-api/Client.cpp index 7c763eb..4baf6ba 100644 --- a/telegram-bot-api/Client.cpp +++ b/telegram-bot-api/Client.cpp @@ -282,6 +282,7 @@ bool Client::init_methods() { methods_.emplace("giftpremiumsubscription", &Client::process_gift_premium_subscription_query); methods_.emplace("getmanagedbottoken", &Client::process_get_managed_bot_token_query); methods_.emplace("getmanagedbotaccesssettings", &Client::process_get_managed_bot_access_settings_query); + methods_.emplace("setmanagedbotaccesssettings", &Client::process_set_managed_bot_access_settings_query); methods_.emplace("replacemanagedbottoken", &Client::process_replace_managed_bot_token_query); methods_.emplace("verifyuser", &Client::process_verify_user_query); methods_.emplace("verifychat", &Client::process_verify_chat_query); @@ -13719,6 +13720,23 @@ td::Status Client::process_get_managed_bot_access_settings_query(PromisedQueryPt return td::Status::OK(); } +td::Status Client::process_set_managed_bot_access_settings_query(PromisedQueryPtr &query) { + TRY_RESULT(user_id, get_user_id(query.get())); + auto is_restricted = to_bool(query->arg("is_access_restricted")); + td::vector added_user_ids; + if (is_restricted && query->has_arg("added_user_ids")) { + TRY_RESULT_ASSIGN(added_user_ids, get_user_ids(query.get(), 10u, "added_user_ids")); + } + check_user(user_id, std::move(query), + [this, user_id, + access_settings = make_object(is_restricted, std::move(added_user_ids))]( + PromisedQueryPtr query) mutable { + send_request(make_object(user_id, std::move(access_settings)), + td::make_unique(std::move(query))); + }); + return td::Status::OK(); +} + td::Status Client::process_verify_user_query(PromisedQueryPtr &query) { TRY_RESULT(user_id, get_user_id(query.get())); auto custom_description = query->arg("custom_description"); diff --git a/telegram-bot-api/Client.h b/telegram-bot-api/Client.h index 4f8f171..bfe1998 100644 --- a/telegram-bot-api/Client.h +++ b/telegram-bot-api/Client.h @@ -817,6 +817,7 @@ class Client final : public WebhookActor::Callback { td::Status process_get_managed_bot_token_query(PromisedQueryPtr &query); td::Status process_replace_managed_bot_token_query(PromisedQueryPtr &query); td::Status process_get_managed_bot_access_settings_query(PromisedQueryPtr &query); + td::Status process_set_managed_bot_access_settings_query(PromisedQueryPtr &query); td::Status process_verify_user_query(PromisedQueryPtr &query); td::Status process_verify_chat_query(PromisedQueryPtr &query); td::Status process_remove_user_verification_query(PromisedQueryPtr &query);