diff --git a/telegram-bot-api/Client.cpp b/telegram-bot-api/Client.cpp index b3c2b40..d6219d1 100644 --- a/telegram-bot-api/Client.cpp +++ b/telegram-bot-api/Client.cpp @@ -5982,6 +5982,26 @@ class Client::TdOnPostStoryCallback final : public TdQueryCallback { PromisedQueryPtr query_; }; +class Client::TdOnRepostStoryCallback final : public TdQueryCallback { + public: + TdOnRepostStoryCallback(Client *client, PromisedQueryPtr query) : client_(client), query_(std::move(query)) { + } + + void on_result(object_ptr result) final { + if (result->get_id() == td_api::error::ID) { + return fail_query_with_error(std::move(query_), move_object_as(result)); + } + + CHECK(result->get_id() == td_api::story::ID); + auto story = move_object_as(result); + answer_query(JsonStory(story->poster_chat_id_, story->id_, client_), std::move(query_)); + } + + private: + Client *client_; + PromisedQueryPtr query_; +}; + class Client::TdOnGetStoryCallback final : public TdQueryCallback { public: TdOnGetStoryCallback(Client *client, PromisedQueryPtr query) : client_(client), query_(std::move(query)) { @@ -13106,7 +13126,7 @@ td::Status Client::process_repost_story_query(PromisedQueryPtr &query) { make_object(), td::vector(), active_period, make_object(from_chat_id, from_story_id), is_posted_to_chat_page, protect_content), - td::make_unique(this, std::move(query))); + td::make_unique(this, std::move(query))); }); }); return td::Status::OK(); diff --git a/telegram-bot-api/Client.h b/telegram-bot-api/Client.h index e9c53c8..eb7f550 100644 --- a/telegram-bot-api/Client.h +++ b/telegram-bot-api/Client.h @@ -260,6 +260,7 @@ class Client final : public WebhookActor::Callback { class TdOnStopPollCallback; class TdOnStopBusinessPollCallback; class TdOnPostStoryCallback; + class TdOnRepostStoryCallback; class TdOnGetStoryCallback; class TdOnOkQueryCallback; class TdOnGetReplyMessageCallback;