aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--telegram-bot-api/Client.cpp36
-rw-r--r--telegram-bot-api/Client.h4
2 files changed, 40 insertions, 0 deletions
diff --git a/telegram-bot-api/Client.cpp b/telegram-bot-api/Client.cpp
index c0d3bd5..d83a5a6 100644
--- a/telegram-bot-api/Client.cpp
+++ b/telegram-bot-api/Client.cpp
@@ -3925,6 +3925,31 @@ class Client::JsonManagedBotUpdated final : public td::Jsonable {
const Client *client_;
};
+class Client::JsonBotSubscriptionUpdated final : public td::Jsonable {
+ public:
+ JsonBotSubscriptionUpdated(const td_api::updateUserSubscription *update_user_subscription, const Client *client)
+ : update_user_subscription_(update_user_subscription), client_(client) {
+ }
+ void store(td::JsonValueScope *scope) const {
+ auto object = scope->enter_object();
+ object("user", JsonUser(update_user_subscription_->user_id_, client_));
+ object("invoice_payload", update_user_subscription_->payload_);
+ if (update_user_subscription_->is_canceled_) {
+ object("state", "canceled");
+ } else if (update_user_subscription_->is_restored_) {
+ object("state", "active");
+ } else if (update_user_subscription_->is_payment_failed_) {
+ object("state", "failed");
+ } else {
+ UNREACHABLE();
+ }
+ }
+
+ private:
+ const td_api::updateUserSubscription *update_user_subscription_;
+ const Client *client_;
+};
+
class Client::JsonCommunityChatAdded final : public td::Jsonable {
public:
JsonCommunityChatAdded(const td_api::messageChatAddedToCommunity *chat_added_to_community, const Client *client)
@@ -9827,6 +9852,9 @@ void Client::on_update(object_ptr<td_api::Object> result) {
case td_api::updateManagedBot::ID:
add_update_managed_bot(move_object_as<td_api::updateManagedBot>(result));
break;
+ case td_api::updateUserSubscription::ID:
+ add_update_subscription(move_object_as<td_api::updateUserSubscription>(result));
+ break;
case td_api::updateNewCustomEvent::ID:
add_new_custom_event(move_object_as<td_api::updateNewCustomEvent>(result));
break;
@@ -17945,6 +17973,8 @@ td::Slice Client::get_update_type_name(UpdateType update_type) {
return td::Slice("managed_bot");
case UpdateType::GuestMessage:
return td::Slice("guest_message");
+ case UpdateType::Subscription:
+ return td::Slice("subscription");
default:
UNREACHABLE();
return td::Slice();
@@ -18320,6 +18350,12 @@ void Client::add_update_managed_bot(object_ptr<td_api::updateManagedBot> &&query
query->user_id_ + (static_cast<int64>(13) << 33));
}
+void Client::add_update_subscription(object_ptr<td_api::updateUserSubscription> &&query) {
+ CHECK(query != nullptr);
+ add_update(UpdateType::Subscription, JsonBotSubscriptionUpdated(query.get(), this), 86400,
+ query->user_id_ + (static_cast<int64>(14) << 33));
+}
+
void Client::add_new_custom_event(object_ptr<td_api::updateNewCustomEvent> &&event) {
CHECK(event != nullptr);
add_update(UpdateType::CustomEvent, JsonCustomJson(event->event_), 600, 0);
diff --git a/telegram-bot-api/Client.h b/telegram-bot-api/Client.h
index 50630f2..5188d19 100644
--- a/telegram-bot-api/Client.h
+++ b/telegram-bot-api/Client.h
@@ -247,6 +247,7 @@ class Client final : public WebhookActor::Callback {
class JsonManagedBotCreated;
class JsonManagedBotUpdated;
class JsonCommunityChatAdded;
+ class JsonBotSubscriptionUpdated;
class JsonGiveawayCreated;
class JsonGiveaway;
class JsonGiveawayWinners;
@@ -1451,6 +1452,8 @@ class Client final : public WebhookActor::Callback {
void add_update_managed_bot(object_ptr<td_api::updateManagedBot> &&query);
+ void add_update_subscription(object_ptr<td_api::updateUserSubscription> &&query);
+
void add_new_custom_event(object_ptr<td_api::updateNewCustomEvent> &&event);
void add_new_custom_query(object_ptr<td_api::updateNewCustomQuery> &&query);
@@ -1498,6 +1501,7 @@ class Client final : public WebhookActor::Callback {
PurchasedPaidMedia,
ManagedBot,
GuestMessage,
+ Subscription,
Size
};