Sendbird Chat SDK for Unreal
SBDUserListQuery.h
1// Copyright (c) 2021 Sendbird, Inc. All rights reserved.
2
3#ifndef SENDBIRD_SBDUSERLISTQUERY_H_
4#define SENDBIRD_SBDUSERLISTQUERY_H_
5
6#include "SBDUser.h"
7#include "SBDTypes.h"
8#include "SBDBaseChannel.h"
9
10class FSBDUserListQuery;
11
15typedef enum {
16 SBDUserListQueryTypeAllUser = 1,
17 SBDUserListQueryTypeBlockedUsers = 2,
18 SBDUserListQueryTypeOpenChannelParticipants = 3,
19 SBDUserListQueryTypeOpenChannelMutedUsers = 4,
20 SBDUserListQueryTypeOpenChannelBannedUsers = 5,
21 SBDUserListQueryTypeFilteredUsers = 6,
22} SBDUserListQueryType;
23
35class SBDUserListQuery final {
36public:
41
45 SBDUserListQueryType query_type;
46
50 int64_t limit;
51
56
61
68 void SetMetaDataFilter(const std::wstring& key, const std::vector<std::wstring>& values);
69
75 void LoadNextPage(std::function<void(const std::vector<SBDUser>& users, SBDError* error)> completion_handler);
76
77private:
78 std::string token;
79 std::wstring meta_data_key;
80 std::vector<std::wstring> meta_data_values;
81 std::vector<std::wstring> user_ids;
82
83 void LoadAllUserListNextPage(std::function<void(const std::vector<SBDUser>& users, SBDError* error)> completion_handler);
84 void LoadBlockedUserListNextPage(std::function<void(const std::vector<SBDUser>& users, SBDError* error)> completion_handler);
85 void LoadParticipantListNextPage(std::function<void(const std::vector<SBDUser>& users, SBDError* error)> completion_handler);
86 void LoadMutedUserListNextPage(std::function<void(const std::vector<SBDUser>& users, SBDError* error)> completion_handler);
87 void LoadBannedUserListNextPage(std::function<void(const std::vector<SBDUser>& users, SBDError* error)> completion_handler);
88 void LoadFilteredUserListNextPage(std::function<void(const std::vector<SBDUser>& users, SBDError* error)> completion_handler);
89
90 SBDUserListQuery(SBDUserListQueryType query_type, SBDBaseChannel* channel);
91 SBDUserListQuery(const std::vector<std::wstring>& user_ids);
92
93 friend FSBDUserListQuery;
94};
95
96#endif /* SENDBIRD_SBDUSERLISTQUERY_H_ */
Definition: SBDBaseChannel.h:271
Definition: SBDError.h:13
Definition: SBDUserListQuery.h:35
int64_t limit
Definition: SBDUserListQuery.h:50
SBDUserListQueryType query_type
Definition: SBDUserListQuery.h:45
bool is_loading
Definition: SBDUserListQuery.h:60
bool has_next
Definition: SBDUserListQuery.h:55
void SetMetaDataFilter(const std::wstring &key, const std::vector< std::wstring > &values)
void LoadNextPage(std::function< void(const std::vector< SBDUser > &users, SBDError *error)> completion_handler)
SBDBaseChannel * channel
Definition: SBDUserListQuery.h:40