2
0
mirror of https://github.com/tdlib/telegram-bot-api synced 2025-08-22 01:49:24 +00:00

Add upgradeGift.

This commit is contained in:
levlam 2025-03-31 09:08:21 +03:00
parent 35a0af7366
commit d9c58ff764
2 changed files with 36 additions and 0 deletions

View File

@ -286,6 +286,7 @@ bool Client::init_methods() {
methods_.emplace("getbusinessaccountstarbalance", &Client::process_get_business_account_star_balance_query);
methods_.emplace("getbusinessaccountgifts", &Client::process_get_business_account_gifts_query);
methods_.emplace("convertgifttostars", &Client::process_convert_gift_to_stars_query);
methods_.emplace("upgradegift", &Client::process_upgrade_gift_query);
methods_.emplace("setuseremojistatus", &Client::process_set_user_emoji_status_query);
methods_.emplace("getchat", &Client::process_get_chat_query);
methods_.emplace("setchatphoto", &Client::process_set_chat_photo_query);
@ -6365,6 +6366,23 @@ class Client::TdOnGetChatInviteLinkCallback final : public TdQueryCallback {
PromisedQueryPtr query_;
};
class Client::TdOnUpgradeGiftCallback final : public TdQueryCallback {
public:
explicit TdOnUpgradeGiftCallback(PromisedQueryPtr query) : query_(std::move(query)) {
}
void on_result(object_ptr<td_api::Object> result) final {
if (result->get_id() == td_api::error::ID) {
return fail_query_with_error(std::move(query_), move_object_as<td_api::error>(result));
}
answer_query(td::JsonTrue(), std::move(query_));
}
private:
PromisedQueryPtr query_;
};
class Client::TdOnGetStarAmountCallback final : public TdQueryCallback {
public:
explicit TdOnGetStarAmountCallback(PromisedQueryPtr query) : query_(std::move(query)) {
@ -12447,6 +12465,22 @@ td::Status Client::process_convert_gift_to_stars_query(PromisedQueryPtr &query)
return td::Status::OK();
}
td::Status Client::process_upgrade_gift_query(PromisedQueryPtr &query) {
auto business_connection_id = query->arg("business_connection_id").str();
auto owned_gift_id = query->arg("owned_gift_id");
auto keep_original_details = to_bool(query->arg("keep_original_details"));
auto star_count = get_integer_arg(query.get(), "star_count", 0, 0, 1000000);
check_business_connection(business_connection_id, std::move(query),
[this, owned_gift_id, keep_original_details, star_count](
const BusinessConnection *business_connection, PromisedQueryPtr query) mutable {
send_request(
make_object<td_api::upgradeGift>(business_connection->id_, owned_gift_id.str(),
keep_original_details, star_count),
td::make_unique<TdOnUpgradeGiftCallback>(std::move(query)));
});
return td::Status::OK();
}
td::Status Client::process_set_user_emoji_status_query(PromisedQueryPtr &query) {
TRY_RESULT(user_id, get_user_id(query.get()));
auto emoji_status_custom_emoji_id = td::to_integer<int64>(query->arg("emoji_status_custom_emoji_id"));

View File

@ -267,6 +267,7 @@ class Client final : public WebhookActor::Callback {
class TdOnGetUserChatBoostsCallback;
class TdOnGetGiftsCallback;
class TdOnCreateInvoiceLinkCallback;
class TdOnUpgradeGiftCallback;
class TdOnGetStarAmountCallback;
class TdOnGetReceivedGiftsCallback;
class TdOnGetStarTransactionsCallback;
@ -744,6 +745,7 @@ class Client final : public WebhookActor::Callback {
td::Status process_get_business_account_star_balance_query(PromisedQueryPtr &query);
td::Status process_get_business_account_gifts_query(PromisedQueryPtr &query);
td::Status process_convert_gift_to_stars_query(PromisedQueryPtr &query);
td::Status process_upgrade_gift_query(PromisedQueryPtr &query);
td::Status process_set_user_emoji_status_query(PromisedQueryPtr &query);
td::Status process_get_chat_query(PromisedQueryPtr &query);
td::Status process_set_chat_photo_query(PromisedQueryPtr &query);