diff options
| author | levlam <levlam@telegram.org> | 2024-03-07 15:24:28 +0300 |
|---|---|---|
| committer | levlam <levlam@telegram.org> | 2024-03-07 15:24:28 +0300 |
| commit | bce17cb5d8d756e1aa6af02bf9165edab11471b9 (patch) | |
| tree | a3c239a8427a9ddcf68144f215bb03a6d0c9e958 /td/telegram/BusinessRecipients.cpp | |
| parent | 11a35768b7f4d8f7c3dbf816cd409a7613c9ae51 (diff) | |
Update layer to 177.
Diffstat (limited to 'td/telegram/BusinessRecipients.cpp')
| -rw-r--r-- | td/telegram/BusinessRecipients.cpp | 43 |
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_ && |
