Move SendCustomRequestQuery to BotQueries.cpp.

This commit is contained in:
levlam 2024-08-15 19:09:21 +03:00
parent d8f2c204c7
commit 7182ccfa67
4 changed files with 76 additions and 29 deletions

View File

@ -338,6 +338,7 @@ set(TDLIB_SOURCE_PART1
td/telegram/BotCommandScope.cpp td/telegram/BotCommandScope.cpp
td/telegram/BotInfoManager.cpp td/telegram/BotInfoManager.cpp
td/telegram/BotMenuButton.cpp td/telegram/BotMenuButton.cpp
td/telegram/BotQueries.cpp
td/telegram/BusinessAwayMessage.cpp td/telegram/BusinessAwayMessage.cpp
td/telegram/BusinessAwayMessageSchedule.cpp td/telegram/BusinessAwayMessageSchedule.cpp
td/telegram/BusinessBotManageBar.cpp td/telegram/BusinessBotManageBar.cpp
@ -628,6 +629,7 @@ set(TDLIB_SOURCE_PART2
td/telegram/BotCommandScope.h td/telegram/BotCommandScope.h
td/telegram/BotInfoManager.h td/telegram/BotInfoManager.h
td/telegram/BotMenuButton.h td/telegram/BotMenuButton.h
td/telegram/BotQueries.h
td/telegram/BusinessAwayMessage.h td/telegram/BusinessAwayMessage.h
td/telegram/BusinessAwayMessageSchedule.h td/telegram/BusinessAwayMessageSchedule.h
td/telegram/BusinessBotManageBar.h td/telegram/BusinessBotManageBar.h

View File

@ -0,0 +1,51 @@
//
// Copyright Aliaksei Levin (levlam@telegram.org), Arseny Smirnov (arseny30@gmail.com) 2014-2024
//
// 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/BotQueries.h"
#include "td/telegram/Global.h"
#include "td/telegram/Td.h"
#include "td/telegram/telegram_api.h"
#include "td/utils/buffer.h"
#include "td/utils/logging.h"
namespace td {
class SendCustomRequestQuery final : public Td::ResultHandler {
Promise<td_api::object_ptr<td_api::customRequestResult>> promise_;
public:
explicit SendCustomRequestQuery(Promise<td_api::object_ptr<td_api::customRequestResult>> &&promise)
: promise_(std::move(promise)) {
}
void send(const string &method, const string &parameters) {
send_query(G()->net_query_creator().create(
telegram_api::bots_sendCustomRequest(method, telegram_api::make_object<telegram_api::dataJSON>(parameters))));
}
void on_result(BufferSlice packet) final {
auto result_ptr = fetch_result<telegram_api::bots_sendCustomRequest>(packet);
if (result_ptr.is_error()) {
return on_error(result_ptr.move_as_error());
}
auto result = result_ptr.move_as_ok();
promise_.set_value(td_api::make_object<td_api::customRequestResult>(result->data_));
}
void on_error(Status status) final {
promise_.set_error(std::move(status));
}
};
void send_bot_custom_query(Td *td, const string &method, const string &parameters,
Promise<td_api::object_ptr<td_api::customRequestResult>> &&promise) {
td->create_handler<SendCustomRequestQuery>(std::move(promise))->send(method, parameters);
}
} // namespace td

21
td/telegram/BotQueries.h Normal file
View File

@ -0,0 +1,21 @@
//
// Copyright Aliaksei Levin (levlam@telegram.org), Arseny Smirnov (arseny30@gmail.com) 2014-2024
//
// 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)
//
#pragma once
#include "td/telegram/td_api.h"
#include "td/utils/common.h"
#include "td/utils/Promise.h"
namespace td {
class Td;
void send_bot_custom_query(Td *td, const string &method, const string &parameters,
Promise<td_api::object_ptr<td_api::customRequestResult>> &&promise);
} // namespace td

View File

@ -24,6 +24,7 @@
#include "td/telegram/BotCommand.h" #include "td/telegram/BotCommand.h"
#include "td/telegram/BotInfoManager.h" #include "td/telegram/BotInfoManager.h"
#include "td/telegram/BotMenuButton.h" #include "td/telegram/BotMenuButton.h"
#include "td/telegram/BotQueries.h"
#include "td/telegram/BusinessAwayMessage.h" #include "td/telegram/BusinessAwayMessage.h"
#include "td/telegram/BusinessConnectionId.h" #include "td/telegram/BusinessConnectionId.h"
#include "td/telegram/BusinessConnectionManager.h" #include "td/telegram/BusinessConnectionManager.h"
@ -275,34 +276,6 @@ class GetRecentMeUrlsQuery final : public Td::ResultHandler {
} }
}; };
class SendCustomRequestQuery final : public Td::ResultHandler {
Promise<td_api::object_ptr<td_api::customRequestResult>> promise_;
public:
explicit SendCustomRequestQuery(Promise<td_api::object_ptr<td_api::customRequestResult>> &&promise)
: promise_(std::move(promise)) {
}
void send(const string &method, const string &parameters) {
send_query(G()->net_query_creator().create(
telegram_api::bots_sendCustomRequest(method, telegram_api::make_object<telegram_api::dataJSON>(parameters))));
}
void on_result(BufferSlice packet) final {
auto result_ptr = fetch_result<telegram_api::bots_sendCustomRequest>(packet);
if (result_ptr.is_error()) {
return on_error(result_ptr.move_as_error());
}
auto result = result_ptr.move_as_ok();
promise_.set_value(td_api::make_object<td_api::customRequestResult>(result->data_));
}
void on_error(Status status) final {
promise_.set_error(std::move(status));
}
};
class AnswerCustomQueryQuery final : public Td::ResultHandler { class AnswerCustomQueryQuery final : public Td::ResultHandler {
Promise<Unit> promise_; Promise<Unit> promise_;
@ -7694,7 +7667,7 @@ void Requests::on_request(uint64 id, td_api::sendCustomRequest &request) {
CLEAN_INPUT_STRING(request.method_); CLEAN_INPUT_STRING(request.method_);
CLEAN_INPUT_STRING(request.parameters_); CLEAN_INPUT_STRING(request.parameters_);
CREATE_REQUEST_PROMISE(); CREATE_REQUEST_PROMISE();
td_->create_handler<SendCustomRequestQuery>(std::move(promise))->send(request.method_, request.parameters_); send_bot_custom_query(td_, request.method_, request.parameters_, std::move(promise));
} }
void Requests::on_request(uint64 id, td_api::answerCustomQuery &request) { void Requests::on_request(uint64 id, td_api::answerCustomQuery &request) {