aboutsummaryrefslogtreecommitdiffhomepage
path: root/td/telegram/BusinessRecipients.cpp
diff options
context:
space:
mode:
authorlevlam <levlam@telegram.org>2024-03-07 15:24:28 +0300
committerlevlam <levlam@telegram.org>2024-03-07 15:24:28 +0300
commitbce17cb5d8d756e1aa6af02bf9165edab11471b9 (patch)
treea3c239a8427a9ddcf68144f215bb03a6d0c9e958 /td/telegram/BusinessRecipients.cpp
parent11a35768b7f4d8f7c3dbf816cd409a7613c9ae51 (diff)
Update layer to 177.
Diffstat (limited to 'td/telegram/BusinessRecipients.cpp')
-rw-r--r--td/telegram/BusinessRecipients.cpp43
1 files changed, 43 insertions, 0 deletions
diff --git a/td/telegram/BusinessRecipients.cpp b/td/telegram/BusinessRecipients.cpp
index 275f68fac..5b7a76100 100644
--- a/td/telegram/BusinessRecipients.cpp
+++ b/td/telegram/BusinessRecipients.cpp
@@ -25,6 +25,16 @@ BusinessRecipients::BusinessRecipients(telegram_api::object_ptr<telegram_api::bu
td::remove_if(user_ids_, [](UserId user_id) { return !user_id.is_valid(); });
}
+BusinessRecipients::BusinessRecipients(telegram_api::object_ptr<telegram_api::businessBotRecipients> recipients)
+ : user_ids_(UserId::get_user_ids(recipients->users_))
+ , existing_chats_(recipients->existing_chats_)
+ , new_chats_(recipients->new_chats_)
+ , contacts_(recipients->contacts_)
+ , non_contacts_(recipients->non_contacts_)
+ , exclude_selected_(recipients->exclude_selected_) {
+ td::remove_if(user_ids_, [](UserId user_id) { return !user_id.is_valid(); });
+}
+
BusinessRecipients::BusinessRecipients(td_api::object_ptr<td_api::businessRecipients> recipients) {
if (recipients == nullptr) {
return;
@@ -87,6 +97,39 @@ telegram_api::object_ptr<telegram_api::inputBusinessRecipients> BusinessRecipien
false /*ignored*/, std::move(input_users));
}
+telegram_api::object_ptr<telegram_api::inputBusinessBotRecipients>
+BusinessRecipients::get_input_business_bot_recipients(Td *td) const {
+ int32 flags = 0;
+ if (existing_chats_) {
+ flags |= telegram_api::inputBusinessRecipients::EXISTING_CHATS_MASK;
+ }
+ if (new_chats_) {
+ flags |= telegram_api::inputBusinessRecipients::NEW_CHATS_MASK;
+ }
+ if (contacts_) {
+ flags |= telegram_api::inputBusinessRecipients::CONTACTS_MASK;
+ }
+ if (non_contacts_) {
+ flags |= telegram_api::inputBusinessRecipients::NON_CONTACTS_MASK;
+ }
+ if (exclude_selected_) {
+ flags |= telegram_api::inputBusinessRecipients::EXCLUDE_SELECTED_MASK;
+ }
+ vector<telegram_api::object_ptr<telegram_api::InputUser>> input_users;
+ for (auto user_id : user_ids_) {
+ auto r_input_user = td->contacts_manager_->get_input_user(user_id);
+ if (r_input_user.is_ok()) {
+ input_users.push_back(r_input_user.move_as_ok());
+ }
+ }
+ if (!input_users.empty()) {
+ flags |= telegram_api::inputBusinessRecipients::USERS_MASK;
+ }
+ return telegram_api::make_object<telegram_api::inputBusinessBotRecipients>(
+ flags, false /*ignored*/, false /*ignored*/, false /*ignored*/, false /*ignored*/, false /*ignored*/,
+ std::move(input_users), Auto());
+}
+
bool operator==(const BusinessRecipients &lhs, const BusinessRecipients &rhs) {
return lhs.user_ids_ == rhs.user_ids_ && lhs.existing_chats_ == rhs.existing_chats_ &&
lhs.new_chats_ == rhs.new_chats_ && lhs.contacts_ == rhs.contacts_ && lhs.non_contacts_ == rhs.non_contacts_ &&