diff options
| author | levlam <levlam@telegram.org> | 2024-01-08 14:09:58 +0300 |
|---|---|---|
| committer | levlam <levlam@telegram.org> | 2024-01-08 14:09:58 +0300 |
| commit | e4c816d33c97f7af2141de00ac25a21bf5473eaf (patch) | |
| tree | 3a20b1bcea52787f1e0814fca618f8939f8f1a0a /td/telegram/DialogInviteLinkManager.h | |
| parent | 5a1b4b8d7179f9c30f18b7b3c547dc9cf6830b4a (diff) | |
Move methods for chat invite link management to DialogInviteLinkManager.
Diffstat (limited to 'td/telegram/DialogInviteLinkManager.h')
| -rw-r--r-- | td/telegram/DialogInviteLinkManager.h | 38 |
1 files changed, 37 insertions, 1 deletions
diff --git a/td/telegram/DialogInviteLinkManager.h b/td/telegram/DialogInviteLinkManager.h index 919ed9e7d..39765991c 100644 --- a/td/telegram/DialogInviteLinkManager.h +++ b/td/telegram/DialogInviteLinkManager.h @@ -8,7 +8,6 @@ #include "td/telegram/AccentColorId.h" #include "td/telegram/DialogId.h" -#include "td/telegram/DialogInviteLink.h" #include "td/telegram/Photo.h" #include "td/telegram/td_api.h" #include "td/telegram/telegram_api.h" @@ -51,7 +50,38 @@ class DialogInviteLinkManager final : public Actor { void remove_dialog_access_by_invite_link(DialogId dialog_id); + void export_dialog_invite_link(DialogId dialog_id, string title, int32 expire_date, int32 usage_limit, + bool creates_join_request, bool is_permanent, + Promise<td_api::object_ptr<td_api::chatInviteLink>> &&promise); + + void edit_dialog_invite_link(DialogId dialog_id, const string &link, string title, int32 expire_date, + int32 usage_limit, bool creates_join_request, + Promise<td_api::object_ptr<td_api::chatInviteLink>> &&promise); + + void get_dialog_invite_link(DialogId dialog_id, const string &invite_link, + Promise<td_api::object_ptr<td_api::chatInviteLink>> &&promise); + + void get_dialog_invite_link_counts(DialogId dialog_id, + Promise<td_api::object_ptr<td_api::chatInviteLinkCounts>> &&promise); + + void get_dialog_invite_links(DialogId dialog_id, UserId creator_user_id, bool is_revoked, int32 offset_date, + const string &offset_invite_link, int32 limit, + Promise<td_api::object_ptr<td_api::chatInviteLinks>> &&promise); + + void get_dialog_invite_link_users(DialogId dialog_id, const string &invite_link, + td_api::object_ptr<td_api::chatInviteLinkMember> offset_member, int32 limit, + Promise<td_api::object_ptr<td_api::chatInviteLinkMembers>> &&promise); + + void revoke_dialog_invite_link(DialogId dialog_id, const string &link, + Promise<td_api::object_ptr<td_api::chatInviteLinks>> &&promise); + + void delete_revoked_dialog_invite_link(DialogId dialog_id, const string &invite_link, Promise<Unit> &&promise); + + void delete_all_revoked_dialog_invite_links(DialogId dialog_id, UserId creator_user_id, Promise<Unit> &&promise); + private: + static constexpr size_t MAX_INVITE_LINK_TITLE_LENGTH = 32; // server side limit + void tear_down() final; static void on_invite_link_info_expire_timeout_callback(void *dialog_invite_link_manager_ptr, int64 dialog_id_long); @@ -62,6 +92,12 @@ class DialogInviteLinkManager final : public Actor { int32 get_dialog_accessible_by_invite_link_before_date(DialogId dialog_id) const; + void export_dialog_invite_link_impl(DialogId dialog_id, string title, int32 expire_date, int32 usage_limit, + bool creates_join_request, bool is_permanent, + Promise<td_api::object_ptr<td_api::chatInviteLink>> &&promise); + + Status can_manage_dialog_invite_links(DialogId dialog_id, bool creator_only = false); + struct InviteLinkInfo { // known dialog DialogId dialog_id; |
