15#import <Foundation/Foundation.h>
17#import "EMCommonDefs.h"
18#import "EMGroupManagerDelegate.h"
20#import "EMGroupConfigs.h"
21#import "EMCursorResult.h"
22#import "EMGroupSharedFile.h"
35#pragma mark - Delegate
51 delegateQueue:(dispatch_queue_t _Nullable )aQueue;
64- (void)removeDelegate:(
id _Nonnull)aDelegate;
67#pragma mark - Get Group
95#pragma mark - Get group from server
114- (void)getJoinedGroupsCountFromServerWithCompletion:(
void (^_Nullable)(NSInteger groupCount,
EMError *_Nullable aError))aCompletionBlock;
147- (void)createGroupWithSubject:(NSString *_Nullable)subject
148 avatar:(NSString *_Nullable)avatar
149 description:(NSString *_Nullable)description
150 invitees:(NSArray<NSString *> * _Nullable)invitees
151 message:(NSString *_Nullable)message
153 completion:(
void (^_Nullable)(
EMGroup *_Nullable group,
EMError *_Nullable error))completionBlock;
155#pragma mark - Fetch Info
176- (void)getGroupSpecificationFromServerWithId:(NSString *_Nonnull)aGroupId
177 completion:(
void (^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
198- (void)getGroupSpecificationFromServerWithId:(NSString *_Nonnull)aGroupId
199 fetchMembers:(BOOL)fetchMembers
200 completion:(
void (^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
225- (void)getGroupMemberListFromServerWithId:(NSString *_Nonnull)aGroupId
226 cursor:(NSString *_Nullable)aCursor
227 pageSize:(NSInteger)aPageSize
228 completion:(
void (^_Nullable)(
EMCursorResult<NSString*> * _Nullable aResult,
EMError *_Nullable aError))aCompletionBlock;
253- (void)fetchGroupMemberInfoListFromServerWithGroupId:(NSString *_Nonnull)groupId
254 cursor:(NSString *_Nonnull)cursor
255 limit:(NSInteger)limit
281- (void)getGroupBlacklistFromServerWithId:(NSString *_Nonnull)aGroupId
282 pageNumber:(NSInteger)aPageNum
283 pageSize:(NSInteger)aPageSize
284 completion:(
void (^_Nullable)(NSArray<NSString *> * _Nullable aList,
EMError *_Nullable aError))aCompletionBlock;
309- (void)getGroupMuteListFromServerWithId:(NSString *_Nonnull)aGroupId
310 pageNumber:(NSInteger)aPageNum
311 pageSize:(NSInteger)aPageSize
312 completion:(
void (^_Nullable)(NSArray<NSString *> * _Nullable aList,
EMError *_Nullable aError))aCompletionBlock;
337- (void)fetchGroupMuteListFromServerWithId:(NSString *_Nonnull)aGroupId
338 pageNumber:(NSInteger)aPageNum
339 pageSize:(NSInteger)aPageSize
340 completion:(
void (^_Nullable)(NSDictionary<NSString *, NSNumber *> *_Nullable aDict,
EMError *_Nullable aError))aCompletionBlock;
363- (void)getGroupFileListWithId:(NSString *_Nonnull)aGroupId
364 pageNumber:(NSInteger)aPageNum
365 pageSize:(NSInteger)aPageSize
366 completion:(
void (^_Nullable)(NSArray<
EMGroupSharedFile *> *_Nullable aList,
EMError *_Nullable aError))aCompletionBlock;
384- (void)getGroupWhiteListFromServerWithId:(NSString *_Nonnull)aGroupId
385 completion:(
void (^_Nullable)(NSArray<NSString *> * _Nullable aList,
EMError *_Nullable aError))aCompletionBlock;
401- (void)isMemberInWhiteListFromServerWithGroupId:(NSString *_Nonnull)aGroupId
402 completion:(
void (^_Nullable)(BOOL inWhiteList,
EMError *_Nullable aError))aCompletionBlock;
419- (void)isMemberInMuteListFromServerWithGroupId:(NSString * _Nonnull)aGroupId
420 completion:(
void (^ _Nonnull)(BOOL inMuteList,
EMError * _Nullable aError))aCompletionBlock;
437- (void)getGroupAnnouncementWithId:(NSString *_Nonnull)aGroupId
438 completion:(
void (^_Nullable)(NSString * _Nullable aAnnouncement,
EMError *_Nullable aError))aCompletionBlock;
440#pragma mark - Public Group
456- (void)joinPublicGroup:(NSString *_Nonnull)aGroupId
457 completion:(
void (^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
475- (void)requestToJoinPublicGroup:(NSString *_Nonnull)aGroupId
476 message:(NSString *_Nullable)aMessage
477 completion:(
void (^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
478#pragma mark - Edit Group
499- (void)addMembers:(NSArray<NSString *> * _Nonnull)aUsers
500 toGroup:(NSString *_Nonnull)aGroupId
501 message:(NSString *_Nullable)aMessage
502 completion:(
void (^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
525- (void)removeMembers:(NSArray<NSString *> * _Nonnull)aUsers
526 fromGroup:(NSString *_Nonnull)aGroupId
527 completion:(
void (^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
550- (void)blockMembers:(NSArray<NSString *> * _Nonnull)aMembers
551 fromGroup:(NSString *_Nonnull)aGroupId
552 completion:(
void (^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
575- (void)unblockMembers:(NSArray<NSString *> * _Nonnull)aMembers
576 fromGroup:(NSString *_Nonnull)aGroupId
577 completion:(
void (^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
600- (void)updateGroupSubject:(NSString *_Nullable)aSubject
601 forGroup:(NSString *_Nonnull)aGroupId
602 completion:(
void (^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
624- (void)updateGroupAvatar:(NSString *_Nullable)avatar
625 groupId:(NSString *_Nonnull)groupId
626 completion:(
void (^_Nullable)(
EMGroup *_Nullable group,
EMError *_Nullable error))completionBlock;
649- (void)updateGroupWithId:(NSString *_Nonnull)groupId
650 types:(EMGroupConfigsType)type
652 completion:(
void (^_Nullable)(
EMGroup *_Nullable
653 group,
EMError *_Nullable error))aCompletionBlock;
675- (void)updateDescription:(NSString *_Nullable)aDescription
676 forGroup:(NSString *_Nonnull)aGroupId
677 completion:(
void (^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
694- (void)leaveGroup:(NSString *_Nonnull)aGroupId
695 completion:(
void (^_Nullable)(
EMError *_Nullable aError))aCompletionBlock;
715- (void)destroyGroup:(NSString *_Nonnull)aGroupId
716 finishCompletion:(
void (^_Nullable)(
EMError *_Nullable aError))aCompletionBlock;
734- (void)blockGroup:(NSString *_Nonnull)aGroupId
735 completion:(
void (^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
751- (void)unblockGroup:(NSString *_Nonnull)aGroupId
752 completion:(
void (^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
775- (void)updateGroupOwner:(NSString *_Nonnull)aGroupId
776 newOwner:(NSString *_Nonnull)aNewOwner
777 completion:(
void (^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
804- (void)addAdmin:(NSString *_Nonnull)aAdmin
805 toGroup:(NSString *_Nonnull)aGroupId
806 completion:(
void (^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
833- (void)removeAdmin:(NSString *_Nonnull)aAdmin
834 fromGroup:(NSString *_Nonnull)aGroupId
835 completion:(
void (^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
863- (void)muteMembers:(NSArray<NSString *> * _Nonnull)aMuteMembers
864 muteMilliseconds:(NSInteger)aMuteMilliseconds
865 fromGroup:(NSString *_Nonnull)aGroupId
866 completion:(
void (^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
892- (void)unmuteMembers:(NSArray<NSString *> * _Nonnull)aMembers
893 fromGroup:(NSString *_Nonnull)aGroupId
894 completion:(
void (^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
917- (void)muteAllMembersFromGroup:(NSString *_Nonnull)aGroupId
918 completion:(
void(^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
943- (void)unmuteAllMembersFromGroup:(NSString *_Nonnull)aGroupId
944 completion:(
void(^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
968- (void)addWhiteListMembers:(NSArray<NSString *> * _Nonnull)aMembers
969 fromGroup:(NSString *_Nonnull)aGroupId
970 completion:(
void (^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
996- (void)removeWhiteListMembers:(NSArray<NSString *> * _Nonnull)aMembers
997 fromGroup:(NSString *_Nonnull)aGroupId
998 completion:(
void (^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
1019- (void)uploadGroupSharedFileWithId:(NSString *_Nonnull)aGroupId
1020 filePath:(NSString* _Nonnull)aFilePath
1021 progress:(
void (^_Nullable)(
int progress))aProgressBlock
1022 completion:(
void (^_Nullable)(
EMGroupSharedFile *_Nullable aSharedFile,
EMError *_Nullable aError))aCompletionBlock;
1043- (void)downloadGroupSharedFileWithId:(NSString *_Nonnull)aGroupId
1044 filePath:(NSString *_Nonnull)aFilePath
1045 sharedFileId:(NSString *_Nonnull)aSharedFileId
1046 progress:(
void (^_Nullable)(
int progress))aProgressBlock
1047 completion:(
void (^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
1064- (void)removeGroupSharedFileWithId:(NSString *_Nonnull)aGroupId
1065 sharedFileId:(NSString *_Nonnull)aSharedFileId
1066 completion:(
void (^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
1092- (void)updateGroupAnnouncementWithId:(NSString *_Nonnull)aGroupId
1093 announcement:(NSString *_Nullable)aAnnouncement
1094 completion:(
void (^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
1116- (void)updateGroupExtWithId:(NSString *_Nonnull)aGroupId
1117 ext:(NSString *_Nullable)aExt
1118 completion:(
void (^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
1123#pragma mark - Application
1150- (void)approveJoinGroupRequest:(NSString *_Nonnull)aGroupId
1151 sender:(NSString *_Nonnull)aUsername
1152 completion:(
void (^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
1180- (void)declineJoinGroupRequest:(NSString *_Nonnull)aGroupId
1181 sender:(NSString *_Nonnull)aUsername
1182 reason:(NSString *_Nullable)aReason
1183 completion:(
void (^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
1207- (void)acceptInvitationFromGroup:(NSString *_Nonnull)aGroupId
1208 inviter:(NSString *_Nonnull)aUsername
1209 completion:(
void (^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
1234- (void)declineGroupInvitation:(NSString *_Nonnull)aGroupId
1235 inviter:(NSString *_Nonnull)aInviter
1236 reason:(NSString *_Nullable)aReason
1237 completion:(
void (^_Nullable)(
EMError *_Nullable aError))aCompletionBlock;
1240#pragma mark - Group member attributes
1258- (void)setMemberAttribute:(NSString *_Nonnull)groupId userId:(NSString *_Nonnull)userId attributes:(NSDictionary<NSString*,NSString*> *_Nonnull)attributes completion:(
void (^_Nullable)(
EMError *_Nullable error))completionBlock;
1281- (void)fetchMemberAttribute:(NSString *_Nonnull)groupId userId:(NSString *_Nonnull)userId completion:(
void (^ _Nullable)(NSDictionary<NSString *,NSString *> * _Nullable,
EMError * _Nullable))completionBlock;
1306- (void)fetchMembersAttributes:(NSString *_Nonnull)groupId userIds:(NSArray<__kindof NSString *> *_Nonnull)userIds keys:(NSArray<__kindof NSString *> *_Nonnull)keys completion:(
void (^_Nullable)(NSDictionary<NSString*,NSDictionary<NSString*,NSString*>*> *_Nullable attributes,
EMError *_Nullable error))completionBlock;
1321- (void)updateGroupNamecard:(NSString* _Nonnull)groupId
1322 namecard:(NSString*_Nullable)namecard
1323 completion:(
void (^_Nullable)(
EMError *_Nullable error))completionBlock;
1338- (NSString* _Nullable)getGroupNamecardWithGroupId:(NSString* _Nonnull)groupId
1339 userId:(NSString*_Nonnull)userId;
Definition: EMCursorResult.h:27
Definition: EMGroupConfigs.h:44
Definition: EMGroupMemberInfo.h:28
Definition: EMGroupSharedFile.h:24
Definition: EMGroupManagerDelegate.h:40
Definition: IEMGroupManager.h:31
void cleanAllGroupsFromDB()
NSArray< EMGroup * > *_Nullable getJoinedGroups()