Pass BusinessConnection pointer to check_business_connection callback.

This commit is contained in:
levlam 2024-03-18 21:50:53 +03:00
parent 5ca4a446f0
commit 938847a51e

View File

@ -4239,7 +4239,7 @@ class Client::TdOnCheckBusinessConnectionCallback final : public TdQueryCallback
CHECK(result->get_id() == td_api::businessConnection::ID); CHECK(result->get_id() == td_api::businessConnection::ID);
auto connection = client_->add_business_connection(move_object_as<td_api::businessConnection>(result), false); auto connection = client_->add_business_connection(move_object_as<td_api::businessConnection>(result), false);
on_success_(connection->id_, std::move(query_)); on_success_(connection, std::move(query_));
} }
private: private:
@ -5714,7 +5714,7 @@ void Client::check_business_connection(const td::string &business_connection_id,
OnSuccess on_success) { OnSuccess on_success) {
auto business_connection = get_business_connection(business_connection_id); auto business_connection = get_business_connection(business_connection_id);
if (business_connection != nullptr) { if (business_connection != nullptr) {
return on_success(business_connection_id, std::move(query)); return on_success(business_connection, std::move(query));
} }
send_request( send_request(
make_object<td_api::getBusinessConnection>(business_connection_id), make_object<td_api::getBusinessConnection>(business_connection_id),
@ -9834,12 +9834,12 @@ td::Status Client::process_send_media_group_query(PromisedQueryPtr &query) {
business_connection_id, std::move(query), business_connection_id, std::move(query),
[this, chat_id, reply_parameters = std::move(reply_parameters), disable_notification, protect_content, [this, chat_id, reply_parameters = std::move(reply_parameters), disable_notification, protect_content,
input_message_contents = std::move(input_message_contents), reply_markup = std::move(reply_markup)]( input_message_contents = std::move(input_message_contents), reply_markup = std::move(reply_markup)](
const td::string &business_connection_id, PromisedQueryPtr query) mutable { const BusinessConnection *business_connection, PromisedQueryPtr query) mutable {
send_request( send_request(
make_object<td_api::sendBusinessMessageAlbum>( make_object<td_api::sendBusinessMessageAlbum>(
business_connection_id, chat_id, get_input_message_reply_to(std::move(reply_parameters)), business_connection->id_, chat_id, get_input_message_reply_to(std::move(reply_parameters)),
disable_notification, protect_content, std::move(input_message_contents)), disable_notification, protect_content, std::move(input_message_contents)),
td::make_unique<TdOnSendBusinessMessageAlbumCallback>(this, business_connection_id, td::make_unique<TdOnSendBusinessMessageAlbumCallback>(this, business_connection->id_,
std::move(query))); std::move(query)));
}); });
} }
@ -9880,9 +9880,9 @@ td::Status Client::process_send_chat_action_query(PromisedQueryPtr &query) {
TRY_RESULT(chat_id, get_business_connection_chat_id(chat_id_str)); TRY_RESULT(chat_id, get_business_connection_chat_id(chat_id_str));
check_business_connection( check_business_connection(
business_connection_id, std::move(query), business_connection_id, std::move(query),
[this, chat_id, action = std::move(action)](const td::string &business_connection_id, [this, chat_id, action = std::move(action)](const BusinessConnection *business_connection,
PromisedQueryPtr query) mutable { PromisedQueryPtr query) mutable {
send_request(make_object<td_api::sendChatAction>(chat_id, 0, business_connection_id, std::move(action)), send_request(make_object<td_api::sendChatAction>(chat_id, 0, business_connection->id_, std::move(action)),
td::make_unique<TdOnOkQueryCallback>(std::move(query))); td::make_unique<TdOnOkQueryCallback>(std::move(query)));
}); });
return td::Status::OK(); return td::Status::OK();
@ -10335,10 +10335,8 @@ td::Status Client::process_revoke_chat_invite_link_query(PromisedQueryPtr &query
td::Status Client::process_get_business_connection_query(PromisedQueryPtr &query) { td::Status Client::process_get_business_connection_query(PromisedQueryPtr &query) {
auto business_connection_id = query->arg("business_connection_id"); auto business_connection_id = query->arg("business_connection_id");
check_business_connection(business_connection_id.str(), std::move(query), check_business_connection(business_connection_id.str(), std::move(query),
[this](const td::string &business_connection_id, PromisedQueryPtr query) mutable { [this](const BusinessConnection *business_connection, PromisedQueryPtr query) mutable {
const auto *connection = get_business_connection(business_connection_id); answer_query(JsonBusinessConnection(business_connection, this), std::move(query));
CHECK(connection != nullptr);
answer_query(JsonBusinessConnection(connection, this), std::move(query));
}); });
return td::Status::OK(); return td::Status::OK();
} }
@ -11665,13 +11663,13 @@ void Client::do_send_message(object_ptr<td_api::InputMessageContent> input_messa
business_connection_id, std::move(query), business_connection_id, std::move(query),
[this, chat_id, reply_parameters = std::move(reply_parameters), disable_notification, protect_content, [this, chat_id, reply_parameters = std::move(reply_parameters), disable_notification, protect_content,
reply_markup = std::move(reply_markup), input_message_content = std::move(input_message_content)]( reply_markup = std::move(reply_markup), input_message_content = std::move(input_message_content)](
const td::string &business_connection_id, PromisedQueryPtr query) mutable { const BusinessConnection *business_connection, PromisedQueryPtr query) mutable {
send_request( send_request(
make_object<td_api::sendBusinessMessage>(business_connection_id, chat_id, make_object<td_api::sendBusinessMessage>(business_connection->id_, chat_id,
get_input_message_reply_to(std::move(reply_parameters)), get_input_message_reply_to(std::move(reply_parameters)),
disable_notification, protect_content, disable_notification, protect_content,
std::move(reply_markup), std::move(input_message_content)), std::move(reply_markup), std::move(input_message_content)),
td::make_unique<TdOnSendBusinessMessageCallback>(this, business_connection_id, std::move(query))); td::make_unique<TdOnSendBusinessMessageCallback>(this, business_connection->id_, std::move(query)));
}); });
} }