// // Copyright Aliaksei Levin (levlam@telegram.org), Arseny Smirnov (arseny30@gmail.com) 2014-2022 // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) // #include "td/telegram/Application.h" #include "td/telegram/Global.h" #include "td/telegram/Td.h" #include "td/utils/buffer.h" #include "td/utils/logging.h" #include "td/utils/Status.h" namespace td { class GetInviteTextQuery final : public Td::ResultHandler { Promise promise_; public: explicit GetInviteTextQuery(Promise &&promise) : promise_(std::move(promise)) { } void send() { send_query(G()->net_query_creator().create(telegram_api::help_getInviteText())); } void on_result(BufferSlice packet) final { auto result_ptr = fetch_result(packet); if (result_ptr.is_error()) { return on_error(result_ptr.move_as_error()); } auto result = result_ptr.move_as_ok(); promise_.set_value(std::move(result->message_)); } void on_error(Status status) final { promise_.set_error(std::move(status)); } }; class SaveAppLogQuery final : public Td::ResultHandler { Promise promise_; public: explicit SaveAppLogQuery(Promise &&promise) : promise_(std::move(promise)) { } void send(const string &type, DialogId dialog_id, tl_object_ptr &&data) { CHECK(data != nullptr); vector> input_app_events; input_app_events.push_back( make_tl_object(G()->server_time_cached(), type, dialog_id.get(), std::move(data))); send_query(G()->net_query_creator().create_unauth(telegram_api::help_saveAppLog(std::move(input_app_events)))); } void on_result(BufferSlice packet) final { auto result_ptr = fetch_result(packet); if (result_ptr.is_error()) { return on_error(result_ptr.move_as_error()); } bool result = result_ptr.move_as_ok(); LOG_IF(ERROR, !result) << "Receive false from help.saveAppLog"; promise_.set_value(Unit()); } void on_error(Status status) final { promise_.set_error(std::move(status)); } }; void get_invite_text(Td *td, Promise &&promise) { td->create_handler(std::move(promise))->send(); } void save_app_log(Td *td, const string &type, DialogId dialog_id, tl_object_ptr &&data, Promise &&promise) { td->create_handler(std::move(promise))->send(type, dialog_id, std::move(data)); } } // namespace td