@@ -6074,6 +6074,21 @@ void Client::check_business_connection(const td::string &business_connection_id,
6074
6074
td::make_unique<TdOnCheckBusinessConnectionCallback<OnSuccess>>(this, std::move(query), std::move(on_success)));
6075
6075
}
6076
6076
6077
+ template <class OnSuccess>
6078
+ void Client::check_business_connection_chat_id(const td::string &business_connection_id, const td::string &chat_id_str,
6079
+ PromisedQueryPtr query, OnSuccess on_success) {
6080
+ auto r_chat_id = get_business_connection_chat_id(chat_id_str);
6081
+ if (r_chat_id.is_error()) {
6082
+ return fail_query_with_error(std::move(query), 400, r_chat_id.error().message());
6083
+ }
6084
+ auto chat_id = r_chat_id.move_as_ok();
6085
+ check_business_connection(business_connection_id, std::move(query),
6086
+ [this, chat_id, on_success = std::move(on_success)](
6087
+ const BusinessConnection *business_connection, PromisedQueryPtr query) mutable {
6088
+ on_success(business_connection, chat_id, std::move(query));
6089
+ });
6090
+ }
6091
+
6077
6092
template <class OnSuccess>
6078
6093
void Client::check_bot_command_scope(BotCommandScope &&scope, PromisedQueryPtr query, OnSuccess on_success) {
6079
6094
CHECK(scope.scope_ != nullptr);
@@ -10059,15 +10074,10 @@ td::Status Client::process_stop_poll_query(PromisedQueryPtr &query) {
10059
10074
[this, business_connection_id = business_connection_id.str(), chat_id_str = chat_id.str(), message_id](
10060
10075
object_ptr<td_api::ReplyMarkup> reply_markup, PromisedQueryPtr query) {
10061
10076
if (!business_connection_id.empty()) {
10062
- auto r_chat_id = get_business_connection_chat_id(chat_id_str);
10063
- if (r_chat_id.is_error()) {
10064
- return fail_query_with_error(std::move(query), 400, r_chat_id.error().message());
10065
- }
10066
- auto chat_id = r_chat_id.move_as_ok();
10067
- return check_business_connection(
10068
- business_connection_id, std::move(query),
10069
- [this, business_connection_id, chat_id, message_id, reply_markup = std::move(reply_markup)](
10070
- const BusinessConnection *business_connection, PromisedQueryPtr query) mutable {
10077
+ return check_business_connection_chat_id(
10078
+ business_connection_id, chat_id_str, std::move(query),
10079
+ [this, business_connection_id, message_id, reply_markup = std::move(reply_markup)](
10080
+ const BusinessConnection *business_connection, int64 chat_id, PromisedQueryPtr query) mutable {
10071
10081
send_request(
10072
10082
make_object<td_api::stopBusinessPoll>(business_connection_id, chat_id, message_id,
10073
10083
std::move(reply_markup)),
@@ -10224,17 +10234,11 @@ td::Status Client::process_send_media_group_query(PromisedQueryPtr &query) {
10224
10234
input_message_contents = std::move(input_message_contents)](object_ptr<td_api::ReplyMarkup> reply_markup,
10225
10235
PromisedQueryPtr query) mutable {
10226
10236
if (!business_connection_id.empty()) {
10227
- auto r_chat_id = get_business_connection_chat_id(chat_id_str);
10228
- if (r_chat_id.is_error()) {
10229
- return fail_query_with_error(std::move(query), 400, r_chat_id.error().message());
10230
- }
10231
- auto chat_id = r_chat_id.move_as_ok();
10232
- return check_business_connection(
10233
- business_connection_id, std::move(query),
10234
- [this, chat_id, reply_parameters = std::move(reply_parameters), disable_notification, protect_content,
10235
- effect_id, input_message_contents = std::move(input_message_contents),
10236
- reply_markup = std::move(reply_markup)](const BusinessConnection *business_connection,
10237
- PromisedQueryPtr query) mutable {
10237
+ return check_business_connection_chat_id(
10238
+ business_connection_id, chat_id_str, std::move(query),
10239
+ [this, reply_parameters = std::move(reply_parameters), disable_notification, protect_content, effect_id,
10240
+ input_message_contents = std::move(input_message_contents), reply_markup = std::move(reply_markup)](
10241
+ const BusinessConnection *business_connection, int64 chat_id, PromisedQueryPtr query) mutable {
10238
10242
send_request(
10239
10243
make_object<td_api::sendBusinessMessageAlbum>(
10240
10244
business_connection->id_, chat_id, get_input_message_reply_to(std::move(reply_parameters)),
@@ -10277,11 +10281,10 @@ td::Status Client::process_send_chat_action_query(PromisedQueryPtr &query) {
10277
10281
return td::Status::Error(400, "Wrong parameter action in request");
10278
10282
}
10279
10283
if (!business_connection_id.empty()) {
10280
- TRY_RESULT(chat_id, get_business_connection_chat_id(chat_id_str));
10281
- check_business_connection(
10282
- business_connection_id, std::move(query),
10283
- [this, chat_id, action = std::move(action)](const BusinessConnection *business_connection,
10284
- PromisedQueryPtr query) mutable {
10284
+ check_business_connection_chat_id(
10285
+ business_connection_id, chat_id_str.str(), std::move(query),
10286
+ [this, action = std::move(action)](const BusinessConnection *business_connection, int64 chat_id,
10287
+ PromisedQueryPtr query) mutable {
10285
10288
send_request(make_object<td_api::sendChatAction>(chat_id, 0, business_connection->id_, std::move(action)),
10286
10289
td::make_unique<TdOnOkQueryCallback>(std::move(query)));
10287
10290
});
@@ -10337,15 +10340,10 @@ td::Status Client::process_edit_message_text_query(PromisedQueryPtr &query) {
10337
10340
input_message_text = std::move(input_message_text)](object_ptr<td_api::ReplyMarkup> reply_markup,
10338
10341
PromisedQueryPtr query) mutable {
10339
10342
if (!business_connection_id.empty()) {
10340
- auto r_chat_id = get_business_connection_chat_id(chat_id_str);
10341
- if (r_chat_id.is_error()) {
10342
- return fail_query_with_error(std::move(query), 400, r_chat_id.error().message());
10343
- }
10344
- auto chat_id = r_chat_id.move_as_ok();
10345
- return check_business_connection(
10346
- business_connection_id, std::move(query),
10347
- [this, business_connection_id, chat_id, message_id, input_message_text = std::move(input_message_text),
10348
- reply_markup = std::move(reply_markup)](const BusinessConnection *business_connection,
10343
+ return check_business_connection_chat_id(
10344
+ business_connection_id, chat_id_str, std::move(query),
10345
+ [this, business_connection_id, message_id, input_message_text = std::move(input_message_text),
10346
+ reply_markup = std::move(reply_markup)](const BusinessConnection *business_connection, int64 chat_id,
10349
10347
PromisedQueryPtr query) mutable {
10350
10348
send_request(make_object<td_api::editBusinessMessageText>(business_connection_id, chat_id, message_id,
10351
10349
std::move(reply_markup),
@@ -10399,16 +10397,11 @@ td::Status Client::process_edit_message_live_location_query(PromisedQueryPtr &qu
10399
10397
location = std::move(location), live_period, heading,
10400
10398
proximity_alert_radius](object_ptr<td_api::ReplyMarkup> reply_markup, PromisedQueryPtr query) mutable {
10401
10399
if (!business_connection_id.empty()) {
10402
- auto r_chat_id = get_business_connection_chat_id(chat_id_str);
10403
- if (r_chat_id.is_error()) {
10404
- return fail_query_with_error(std::move(query), 400, r_chat_id.error().message());
10405
- }
10406
- auto chat_id = r_chat_id.move_as_ok();
10407
- return check_business_connection(
10408
- business_connection_id, std::move(query),
10409
- [this, business_connection_id, chat_id, message_id, location = std::move(location), live_period,
10410
- heading, proximity_alert_radius, reply_markup = std::move(reply_markup)](
10411
- const BusinessConnection *business_connection, PromisedQueryPtr query) mutable {
10400
+ return check_business_connection_chat_id(
10401
+ business_connection_id, chat_id_str, std::move(query),
10402
+ [this, business_connection_id, message_id, location = std::move(location), live_period, heading,
10403
+ proximity_alert_radius, reply_markup = std::move(reply_markup)](
10404
+ const BusinessConnection *business_connection, int64 chat_id, PromisedQueryPtr query) mutable {
10412
10405
send_request(make_object<td_api::editBusinessMessageLiveLocation>(
10413
10406
business_connection_id, chat_id, message_id, std::move(reply_markup),
10414
10407
std::move(location), live_period, heading, proximity_alert_radius),
@@ -10455,16 +10448,11 @@ td::Status Client::process_edit_message_media_query(PromisedQueryPtr &query) {
10455
10448
input_message_content = std::move(input_media)](object_ptr<td_api::ReplyMarkup> reply_markup,
10456
10449
PromisedQueryPtr query) mutable {
10457
10450
if (!business_connection_id.empty()) {
10458
- auto r_chat_id = get_business_connection_chat_id(chat_id_str);
10459
- if (r_chat_id.is_error()) {
10460
- return fail_query_with_error(std::move(query), 400, r_chat_id.error().message());
10461
- }
10462
- auto chat_id = r_chat_id.move_as_ok();
10463
- return check_business_connection(
10464
- business_connection_id, std::move(query),
10465
- [this, business_connection_id, chat_id, message_id,
10466
- input_message_content = std::move(input_message_content), reply_markup = std::move(reply_markup)](
10467
- const BusinessConnection *business_connection, PromisedQueryPtr query) mutable {
10451
+ return check_business_connection_chat_id(
10452
+ business_connection_id, chat_id_str, std::move(query),
10453
+ [this, business_connection_id, message_id, input_message_content = std::move(input_message_content),
10454
+ reply_markup = std::move(reply_markup)](const BusinessConnection *business_connection, int64 chat_id,
10455
+ PromisedQueryPtr query) mutable {
10468
10456
send_request(make_object<td_api::editBusinessMessageMedia>(business_connection_id, chat_id,
10469
10457
message_id, std::move(reply_markup),
10470
10458
std::move(input_message_content)),
@@ -10511,16 +10499,11 @@ td::Status Client::process_edit_message_caption_query(PromisedQueryPtr &query) {
10511
10499
caption = std::move(caption),
10512
10500
show_caption_above_media](object_ptr<td_api::ReplyMarkup> reply_markup, PromisedQueryPtr query) mutable {
10513
10501
if (!business_connection_id.empty()) {
10514
- auto r_chat_id = get_business_connection_chat_id(chat_id_str);
10515
- if (r_chat_id.is_error()) {
10516
- return fail_query_with_error(std::move(query), 400, r_chat_id.error().message());
10517
- }
10518
- auto chat_id = r_chat_id.move_as_ok();
10519
- return check_business_connection(
10520
- business_connection_id, std::move(query),
10521
- [this, business_connection_id, chat_id, message_id, reply_markup = std::move(reply_markup),
10522
- caption = std::move(caption), show_caption_above_media](const BusinessConnection *business_connection,
10523
- PromisedQueryPtr query) mutable {
10502
+ return check_business_connection_chat_id(
10503
+ business_connection_id, chat_id_str, std::move(query),
10504
+ [this, business_connection_id, message_id, reply_markup = std::move(reply_markup),
10505
+ caption = std::move(caption), show_caption_above_media](
10506
+ const BusinessConnection *business_connection, int64 chat_id, PromisedQueryPtr query) mutable {
10524
10507
send_request(make_object<td_api::editBusinessMessageCaption>(
10525
10508
business_connection_id, chat_id, message_id, std::move(reply_markup),
10526
10509
std::move(caption), show_caption_above_media),
@@ -10563,15 +10546,10 @@ td::Status Client::process_edit_message_reply_markup_query(PromisedQueryPtr &que
10563
10546
[this, business_connection_id = business_connection_id.str(), chat_id_str = chat_id.str(), message_id](
10564
10547
object_ptr<td_api::ReplyMarkup> reply_markup, PromisedQueryPtr query) {
10565
10548
if (!business_connection_id.empty()) {
10566
- auto r_chat_id = get_business_connection_chat_id(chat_id_str);
10567
- if (r_chat_id.is_error()) {
10568
- return fail_query_with_error(std::move(query), 400, r_chat_id.error().message());
10569
- }
10570
- auto chat_id = r_chat_id.move_as_ok();
10571
- return check_business_connection(
10572
- business_connection_id, std::move(query),
10573
- [this, business_connection_id, chat_id, message_id, reply_markup = std::move(reply_markup)](
10574
- const BusinessConnection *business_connection, PromisedQueryPtr query) mutable {
10549
+ return check_business_connection_chat_id(
10550
+ business_connection_id, chat_id_str, std::move(query),
10551
+ [this, business_connection_id, message_id, reply_markup = std::move(reply_markup)](
10552
+ const BusinessConnection *business_connection, int64 chat_id, PromisedQueryPtr query) mutable {
10575
10553
send_request(make_object<td_api::editBusinessMessageReplyMarkup>(business_connection_id, chat_id,
10576
10554
message_id, std::move(reply_markup)),
10577
10555
td::make_unique<TdOnReturnBusinessMessageCallback>(this, business_connection_id,
@@ -12188,17 +12166,11 @@ void Client::do_send_message(object_ptr<td_api::InputMessageContent> input_messa
12188
12166
input_message_content = std::move(input_message_content)](object_ptr<td_api::ReplyMarkup> reply_markup,
12189
12167
PromisedQueryPtr query) mutable {
12190
12168
if (!business_connection_id.empty()) {
12191
- auto r_chat_id = get_business_connection_chat_id(chat_id_str);
12192
- if (r_chat_id.is_error()) {
12193
- return fail_query_with_error(std::move(query), 400, r_chat_id.error().message());
12194
- }
12195
- auto chat_id = r_chat_id.move_as_ok();
12196
- return check_business_connection(
12197
- business_connection_id, std::move(query),
12198
- [this, chat_id, reply_parameters = std::move(reply_parameters), disable_notification, protect_content,
12199
- effect_id, reply_markup = std::move(reply_markup),
12200
- input_message_content = std::move(input_message_content)](const BusinessConnection *business_connection,
12201
- PromisedQueryPtr query) mutable {
12169
+ return check_business_connection_chat_id(
12170
+ business_connection_id, chat_id_str, std::move(query),
12171
+ [this, reply_parameters = std::move(reply_parameters), disable_notification, protect_content, effect_id,
12172
+ reply_markup = std::move(reply_markup), input_message_content = std::move(input_message_content)](
12173
+ const BusinessConnection *business_connection, int64 chat_id, PromisedQueryPtr query) mutable {
12202
12174
send_request(make_object<td_api::sendBusinessMessage>(
12203
12175
business_connection->id_, chat_id,
12204
12176
get_input_message_reply_to(std::move(reply_parameters)), disable_notification,
0 commit comments