From 881e74accbd6f9280a0d74520f0d47cced4e4bc8 Mon Sep 17 00:00:00 2001 From: levlam Date: Mon, 27 Mar 2023 00:39:38 +0300 Subject: [PATCH] Add DialogId::get_dialog_ids. --- td/telegram/DialogId.cpp | 5 +++++ td/telegram/DialogId.h | 2 ++ td/telegram/Td.cpp | 25 ++++--------------------- 3 files changed, 11 insertions(+), 21 deletions(-) diff --git a/td/telegram/DialogId.cpp b/td/telegram/DialogId.cpp index 9484259dd..43c1e392a 100644 --- a/td/telegram/DialogId.cpp +++ b/td/telegram/DialogId.cpp @@ -8,6 +8,7 @@ #include "td/telegram/telegram_api.h" +#include "td/utils/algorithm.h" #include "td/utils/logging.h" #include @@ -176,4 +177,8 @@ DialogId DialogId::get_message_dialog_id(const tl_object_ptr DialogId::get_dialog_ids(const vector &chat_ids) { + return transform(chat_ids, [](int64 chat_id) { return DialogId(chat_id); }); +} + } // namespace td diff --git a/td/telegram/DialogId.h b/td/telegram/DialogId.h index c2df36f68..66e2a9c9a 100644 --- a/td/telegram/DialogId.h +++ b/td/telegram/DialogId.h @@ -70,6 +70,8 @@ class DialogId { static DialogId get_message_dialog_id(const tl_object_ptr &message_ptr); + static vector get_dialog_ids(const vector &chat_ids); + template void store(StorerT &storer) const { storer.store_long(id); diff --git a/td/telegram/Td.cpp b/td/telegram/Td.cpp index 35f66101d..2e7a66595 100644 --- a/td/telegram/Td.cpp +++ b/td/telegram/Td.cpp @@ -4789,25 +4789,9 @@ void Td::on_request(uint64 id, td_api::optimizeStorage &request) { file_types.push_back(get_file_type(*file_type)); } - std::vector owner_dialog_ids; - for (auto chat_id : request.chat_ids_) { - DialogId dialog_id(chat_id); - if (!dialog_id.is_valid() && dialog_id != DialogId()) { - return send_error_raw(id, 400, "Wrong chat identifier"); - } - owner_dialog_ids.push_back(dialog_id); - } - std::vector exclude_owner_dialog_ids; - for (auto chat_id : request.exclude_chat_ids_) { - DialogId dialog_id(chat_id); - if (!dialog_id.is_valid() && dialog_id != DialogId()) { - return send_error_raw(id, 400, "Wrong chat identifier"); - } - exclude_owner_dialog_ids.push_back(dialog_id); - } FileGcParameters parameters(request.size_, request.ttl_, request.count_, request.immunity_delay_, - std::move(file_types), std::move(owner_dialog_ids), std::move(exclude_owner_dialog_ids), - request.chat_limit_); + std::move(file_types), DialogId::get_dialog_ids(request.chat_ids_), + DialogId::get_dialog_ids(request.exclude_chat_ids_), request.chat_limit_); CREATE_REQUEST_PROMISE(); auto query_promise = PromiseCreator::lambda([promise = std::move(promise)](Result result) mutable { @@ -6242,9 +6226,8 @@ void Td::on_request(uint64 id, const td_api::toggleChatDefaultDisableNotificatio void Td::on_request(uint64 id, const td_api::setPinnedChats &request) { CHECK_IS_USER(); - answer_ok_query(id, messages_manager_->set_pinned_dialogs( - DialogListId(request.chat_list_), - transform(request.chat_ids_, [](int64 chat_id) { return DialogId(chat_id); }))); + answer_ok_query(id, messages_manager_->set_pinned_dialogs(DialogListId(request.chat_list_), + DialogId::get_dialog_ids(request.chat_ids_))); } void Td::on_request(uint64 id, const td_api::getAttachmentMenuBot &request) {