15#import <Foundation/Foundation.h>
17#import "EMCommonDefs.h"
18#import "EMGroupManagerDelegate.h"
20#import "EMGroupOptions.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
109- (NSArray *)getGroupsWithoutPushNotification:(
EMError **)pError EM_DEPRECATED_IOS(3_3_2, 3_8_3, "Use -
IEMPushManager::noPushGroups");
112#pragma mark - Get group from server
137- (
EMCursorResult<
EMGroup*> *_Nullable)getPublicGroupsFromServerWithCursor:(NSString *_Nullable)aCursor
138 pageSize:(NSInteger)aPageSize
139 error:(
EMError **_Nullable)pError;
162- (void)getPublicGroupsFromServerWithCursor:(NSString *_Nullable)aCursor
163 pageSize:(NSInteger)aPageSize
187- (
EMGroup * _Nullable)searchPublicGroupWithId:(NSString *_Nonnull)aGroundId
188 error:(
EMError **_Nullable)pError;
205- (void)searchPublicGroupWithId:(NSString *_Nonnull)aGroundId
206 completion:(
void (^_Nullable)(
EMGroup *aGroup,
EMError *_Nullable aError))aCompletionBlock;
225- (void)getJoinedGroupsCountFromServerWithCompletion:(
void (^_Nullable)(NSInteger groupCount,
EMError *_Nullable aError))aCompletionBlock;
258- (
EMGroup * _Nullable)createGroupWithSubject:(NSString *_Nullable)aSubject
259 description:(NSString *_Nullable)aDescription
260 invitees:(NSArray<NSString *> * _Nullable)aInvitees
261 message:(NSString *_Nullable)aMessage
263 error:(
EMError **_Nullable)pError;
294- (void)createGroupWithSubject:(NSString *_Nullable)subject
295 avatar:(NSString *_Nullable)avatar
296 description:(NSString *_Nullable)description
297 invitees:(NSArray<NSString *> * _Nullable)invitees
298 message:(NSString *_Nullable)message
300 completion:(
void (^_Nullable)(
EMGroup *_Nullable group,
EMError *_Nullable error))completionBlock;
329- (void)createGroupWithSubject:(NSString *_Nullable)aSubject
330 description:(NSString *_Nullable)aDescription
331 invitees:(NSArray<NSString *> * _Nullable)aInvitees
332 message:(NSString *_Nullable)aMessage
334 completion:(
void (^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
336#pragma mark - Fetch Info
359- (
EMGroup * _Nullable)getGroupSpecificationFromServerWithId:(NSString *_Nonnull)aGroupId
360 error:(
EMError **_Nullable)pError;
385- (
EMGroup * _Nullable)getGroupSpecificationFromServerWithId:(NSString *_Nonnull)aGroupId
386 fetchMembers:(BOOL)fetchMembers
387 error:(
EMError **_Nullable)pError;
408- (void)getGroupSpecificationFromServerWithId:(NSString *_Nonnull)aGroupId
409 completion:(
void (^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
430- (void)getGroupSpecificationFromServerWithId:(NSString *_Nonnull)aGroupId
431 fetchMembers:(BOOL)fetchMembers
432 completion:(
void (^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
465- (
EMCursorResult<NSString*> *)getGroupMemberListFromServerWithId:(NSString *_Nonnull)aGroupId
466 cursor:(NSString *_Nullable)aCursor
467 pageSize:(NSInteger)aPageSize
468 error:(
EMError **_Nullable)pError;
493- (void)getGroupMemberListFromServerWithId:(NSString *_Nonnull)aGroupId
494 cursor:(NSString *_Nullable)aCursor
495 pageSize:(NSInteger)aPageSize
496 completion:(
void (^_Nullable)(
EMCursorResult<NSString*> *aResult,
EMError *_Nullable aError))aCompletionBlock;
521- (void)fetchGroupMemberInfoListFromServerWithGroupId:(NSString *_Nonnull)groupId
522 cursor:(NSString *_Nonnull)cursor
523 limit:(NSInteger)limit
555- (NSArray<NSString *> * _Nullable)getGroupBlacklistFromServerWithId:(NSString *_Nonnull)aGroupId
556 pageNumber:(NSInteger)aPageNum
557 pageSize:(NSInteger)aPageSize
558 error:(
EMError **_Nullable)pError;
583- (void)getGroupBlacklistFromServerWithId:(NSString *_Nonnull)aGroupId
584 pageNumber:(NSInteger)aPageNum
585 pageSize:(NSInteger)aPageSize
586 completion:(
void (^_Nullable)(NSArray<NSString *> * _Nullable aList,
EMError *_Nullable aError))aCompletionBlock;
614- (NSArray<NSString *> * _Nullable)getGroupMuteListFromServerWithId:(NSString *_Nonnull)aGroupId
615 pageNumber:(NSInteger)aPageNum
616 pageSize:(NSInteger)aPageSize
617 error:(
EMError **_Nullable)pError;
642- (void)getGroupMuteListFromServerWithId:(NSString *_Nonnull)aGroupId
643 pageNumber:(NSInteger)aPageNum
644 pageSize:(NSInteger)aPageSize
645 completion:(
void (^_Nullable)(NSArray<NSString *> * _Nullable aList,
EMError *_Nullable aError))aCompletionBlock;
670- (void)fetchGroupMuteListFromServerWithId:(NSString *_Nonnull)aGroupId
671 pageNumber:(NSInteger)aPageNum
672 pageSize:(NSInteger)aPageSize
673 completion:(
void (^_Nullable)(NSDictionary<NSString *, NSNumber *> *_Nullable aDict,
EMError *_Nullable aError))aCompletionBlock;
696- (NSArray<
EMGroupSharedFile *> *_Nullable)getGroupFileListWithId:(NSString *_Nonnull)aGroupId
697 pageNumber:(NSInteger)aPageNum
698 pageSize:(NSInteger)aPageSize
699 error:(
EMError **_Nullable)pError;
722- (void)getGroupFileListWithId:(NSString *_Nonnull)aGroupId
723 pageNumber:(NSInteger)aPageNum
724 pageSize:(NSInteger)aPageSize
725 completion:(
void (^_Nullable)(NSArray<
EMGroupSharedFile *> *_Nullable aList,
EMError *_Nullable aError))aCompletionBlock;
747- (NSArray *)getGroupWhiteListFromServerWithId:(NSString *_Nonnull)aGroupId
748 error:(
EMError **_Nullable)pError;
766- (void)getGroupWhiteListFromServerWithId:(NSString *_Nonnull)aGroupId
767 completion:(
void (^_Nullable)(NSArray<NSString *> * _Nullable aList,
EMError *_Nullable aError))aCompletionBlock;
788- (BOOL)isMemberInWhiteListFromServerWithGroupId:(NSString *_Nonnull)aGroupId
789 error:(
EMError **_Nullable)pError;
806- (void)isMemberInWhiteListFromServerWithGroupId:(NSString *_Nonnull)aGroupId
807 completion:(
void (^_Nullable)(BOOL inWhiteList,
EMError *_Nullable aError))aCompletionBlock;
826- (NSString *_Nullable)getGroupAnnouncementWithId:(NSString *_Nonnull)aGroupId
827 error:(
EMError **_Nullable)pError;
844- (void)isMemberInMuteListFromServerWithGroupId:(NSString * _Nonnull)aGroupId
845 completion:(
void (^ _Nonnull)(BOOL inMuteList,
EMError * _Nullable aError))aCompletionBlock;
862- (void)getGroupAnnouncementWithId:(NSString *_Nonnull)aGroupId
863 completion:(
void (^_Nullable)(NSString *aAnnouncement,
EMError *_Nullable aError))aCompletionBlock;
865#pragma mark - Edit Group
892- (
EMGroup * _Nullable)addOccupants:(NSArray<NSString *> * _Nonnull)aOccupants
893 toGroup:(NSString *_Nonnull)aGroupId
894 welcomeMessage:(NSString *_Nullable)aWelcomeMessage
895 error:(
EMError **_Nullable)pError;
916- (void)addMembers:(NSArray<NSString *> * _Nonnull)aUsers
917 toGroup:(NSString *_Nonnull)aGroupId
918 message:(NSString *_Nullable)aMessage
919 completion:(
void (^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
948- (
EMGroup * _Nullable)removeOccupants:(NSArray<NSString *> * _Nonnull)aOccupants
949 fromGroup:(NSString *_Nonnull)aGroupId
950 error:(
EMError **_Nullable)pError;
973- (void)removeMembers:(NSArray<NSString *> * _Nonnull)aUsers
974 fromGroup:(NSString *_Nonnull)aGroupId
975 completion:(
void (^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
1004- (
EMGroup * _Nullable)blockOccupants:(NSArray<NSString *> * _Nonnull)aOccupants
1005 fromGroup:(NSString *_Nonnull)aGroupId
1006 error:(
EMError **_Nullable)pError;
1029- (void)blockMembers:(NSArray<NSString *> * _Nonnull)aMembers
1030 fromGroup:(NSString *_Nonnull)aGroupId
1031 completion:(
void (^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
1061- (
EMGroup * _Nullable)unblockOccupants:(NSArray<NSString *> * _Nonnull)aOccupants
1062 forGroup:(NSString *_Nonnull)aGroupId
1063 error:(
EMError **_Nullable)pError;
1086- (void)unblockMembers:(NSArray<NSString *> * _Nonnull)aMembers
1087 fromGroup:(NSString *_Nonnull)aGroupId
1088 completion:(
void (^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
1117- (
EMGroup * _Nullable)changeGroupSubject:(NSString *_Nullable)aSubject
1118 forGroup:(NSString *_Nonnull)aGroupId
1119 error:(
EMError **_Nullable)pError;
1142- (void)updateGroupSubject:(NSString *_Nullable)aSubject
1143 forGroup:(NSString *_Nonnull)aGroupId
1144 completion:(
void (^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
1165- (void)updateGroupAvatar:(NSString *_Nullable)avatar
1166 groupId:(NSString *_Nonnull)groupId
1167 completion:(
void (^_Nullable)(
EMGroup *_Nullable group,
EMError *_Nullable error))completionBlock;
1196- (
EMGroup * _Nullable)changeDescription:(NSString *_Nullable)aDescription
1197 forGroup:(NSString *_Nonnull)aGroupId
1198 error:(
EMError **_Nullable)pError;
1221- (void)updateDescription:(NSString *_Nullable)aDescription
1222 forGroup:(NSString *_Nonnull)aGroupId
1223 completion:(
void (^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
1244- (void)leaveGroup:(NSString *_Nonnull)aGroupId
1245 error:(
EMError **_Nullable)pError;
1262- (void)leaveGroup:(NSString *_Nonnull)aGroupId
1263 completion:(
void (^_Nullable)(
EMError *_Nullable aError))aCompletionBlock;
1288- (
EMError *)destroyGroup:(NSString *_Nonnull)aGroupId;
1308- (void)destroyGroup:(NSString *_Nonnull)aGroupId
1309 finishCompletion:(
void (^_Nullable)(
EMError *_Nullable aError))aCompletionBlock;
1335- (
EMGroup * _Nullable)blockGroup:(NSString *_Nonnull)aGroupId
1336 error:(
EMError **_Nullable)pError;
1354- (void)blockGroup:(NSString *_Nonnull)aGroupId
1355 completion:(
void (^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
1378- (
EMGroup * _Nullable)unblockGroup:(NSString *_Nonnull)aGroupId
1379 error:(
EMError **_Nullable)pError;
1395- (void)unblockGroup:(NSString *_Nonnull)aGroupId
1396 completion:(
void (^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
1426- (
EMGroup * _Nullable)updateGroupOwner:(NSString *_Nonnull)aGroupId
1427 newOwner:(NSString *_Nonnull)aNewOwner
1428 error:(
EMError **_Nullable)pError;
1451- (void)updateGroupOwner:(NSString *_Nonnull)aGroupId
1452 newOwner:(NSString *_Nonnull)aNewOwner
1453 completion:(
void (^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
1480- (
EMGroup * _Nullable)addAdmin:(NSString *_Nonnull)aAdmin
1481 toGroup:(NSString *_Nonnull)aGroupId
1482 error:(
EMError **_Nullable)pError;
1509- (void)addAdmin:(NSString *_Nonnull)aAdmin
1510 toGroup:(NSString *_Nonnull)aGroupId
1511 completion:(
void (^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
1540- (
EMGroup * _Nullable)removeAdmin:(NSString *_Nonnull)aAdmin
1541 fromGroup:(NSString *_Nonnull)aGroupId
1542 error:(
EMError **_Nullable)pError;
1569- (void)removeAdmin:(NSString *_Nonnull)aAdmin
1570 fromGroup:(NSString *_Nonnull)aGroupId
1571 completion:(
void (^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
1603- (
EMGroup * _Nullable)muteMembers:(NSArray<NSString *> * _Nonnull)aMuteMembers
1604 muteMilliseconds:(NSInteger)aMuteMilliseconds
1605 fromGroup:(NSString *_Nonnull)aGroupId
1606 error:(
EMError **_Nullable)pError;
1634- (void)muteMembers:(NSArray<NSString *> * _Nonnull)aMuteMembers
1635 muteMilliseconds:(NSInteger)aMuteMilliseconds
1636 fromGroup:(NSString *_Nonnull)aGroupId
1637 completion:(
void (^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
1666- (
EMGroup * _Nullable)unmuteMembers:(NSArray<NSString *> * _Nonnull)aMembers
1667 fromGroup:(NSString *_Nonnull)aGroupId
1668 error:(
EMError **_Nullable)pError;
1694- (void)unmuteMembers:(NSArray<NSString *> * _Nonnull)aMembers
1695 fromGroup:(NSString *_Nonnull)aGroupId
1696 completion:(
void (^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
1723- (
EMGroup * _Nullable)muteAllMembersFromGroup:(NSString *_Nonnull)aGroupId
1724 error:(
EMError **_Nullable)pError;
1748- (void)muteAllMembersFromGroup:(NSString *_Nonnull)aGroupId
1749 completion:(
void(^)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
1777- (
EMGroup * _Nullable)unmuteAllMembersFromGroup:(NSString *_Nonnull)aGroupId
1778 error:(
EMError **_Nullable)pError;
1803- (void)unmuteAllMembersFromGroup:(NSString *_Nonnull)aGroupId
1804 completion:(
void(^)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
1834- (
EMGroup * _Nullable)addWhiteListMembers:(NSArray<NSString *> * _Nonnull)aMembers
1835 fromGroup:(NSString *_Nonnull)aGroupId
1836 error:(
EMError **_Nullable)pError;
1860- (void)addWhiteListMembers:(NSArray<NSString *> * _Nonnull)aMembers
1861 fromGroup:(NSString *_Nonnull)aGroupId
1862 completion:(
void (^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
1892- (
EMGroup * _Nullable)removeWhiteListMembers:(NSArray<NSString *> * _Nonnull)aMembers
1893 fromGroup:(NSString *_Nonnull)aGroupId
1894 error:(
EMError **_Nullable)pError;
1920- (void)removeWhiteListMembers:(NSArray<NSString *> * _Nonnull)aMembers
1921 fromGroup:(NSString *_Nonnull)aGroupId
1922 completion:(
void (^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
1943- (void)uploadGroupSharedFileWithId:(NSString *_Nonnull)aGroupId
1944 filePath:(NSString* _Nonnull)aFilePath
1945 progress:(
void (^_Nullable)(
int progress))aProgressBlock
1946 completion:(
void (^_Nullable)(
EMGroupSharedFile *_Nullable aSharedFile,
EMError *_Nullable aError))aCompletionBlock;
1967- (void)downloadGroupSharedFileWithId:(NSString *_Nonnull)aGroupId
1968 filePath:(NSString *_Nonnull)aFilePath
1969 sharedFileId:(NSString *_Nonnull)aSharedFileId
1970 progress:(
void (^_Nullable)(
int progress))aProgressBlock
1971 completion:(
void (^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
1994- (
EMGroup * _Nullable)removeGroupSharedFileWithId:(NSString *_Nonnull)aGroupId
1995 sharedFileId:(NSString *_Nonnull)aSharedFileId
1996 error:(
EMError **_Nullable)pError;
2013- (void)removeGroupSharedFileWithId:(NSString *_Nonnull)aGroupId
2014 sharedFileId:(NSString *_Nonnull)aSharedFileId
2015 completion:(
void (^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
2042- (
EMGroup * _Nullable)updateGroupAnnouncementWithId:(NSString *_Nonnull)aGroupId
2043 announcement:(NSString *_Nullable)aAnnouncement
2044 error:(
EMError **_Nullable)pError;
2070- (void)updateGroupAnnouncementWithId:(NSString *_Nonnull)aGroupId
2071 announcement:(NSString *_Nullable)aAnnouncement
2072 completion:(
void (^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
2099- (
EMGroup * _Nullable)updateGroupExtWithId:(NSString *_Nonnull)aGroupId
2100 ext:(NSString *_Nullable)aExt
2101 error:(
EMError **_Nullable)pError;
2123- (void)updateGroupExtWithId:(NSString *_Nonnull)aGroupId
2124 ext:(NSString *_Nullable)aExt
2125 completion:(
void (^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
2127#pragma mark - Edit Public Group
2150- (
EMGroup * _Nullable)joinPublicGroup:(NSString *_Nonnull)aGroupId
2151 error:(
EMError **_Nullable)pError;
2167- (void)joinPublicGroup:(NSString *_Nonnull)aGroupId
2168 completion:(
void (^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
2193- (
EMGroup * _Nullable)applyJoinPublicGroup:(NSString *_Nonnull)aGroupId
2194 message:(NSString *_Nullable)aMessage
2195 error:(
EMError **_Nullable)pError;
2214- (void)requestToJoinPublicGroup:(NSString *_Nonnull)aGroupId
2215 message:(NSString *_Nullable)aMessage
2216 completion:(
void (^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
2218#pragma mark - Application
2245- (
EMError *)acceptJoinApplication:(NSString *_Nonnull)aGroupId
2246 applicant:(NSString *_Nonnull)aUsername;
2273- (void)approveJoinGroupRequest:(NSString *_Nonnull)aGroupId
2274 sender:(NSString *_Nonnull)aUsername
2275 completion:(
void (^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
2304- (
EMError *)declineJoinApplication:(NSString *_Nonnull)aGroupId
2305 applicant:(NSString *_Nonnull)aUsername
2306 reason:(NSString *_Nullable)aReason;
2335- (void)declineJoinGroupRequest:(NSString *_Nonnull)aGroupId
2336 sender:(NSString *_Nonnull)aUsername
2337 reason:(NSString *_Nullable)aReason
2338 completion:(
void (^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
2363- (
EMGroup * _Nullable)acceptInvitationFromGroup:(NSString *_Nonnull)aGroupId
2364 inviter:(NSString *_Nonnull)aUsername
2365 error:(
EMError **_Nullable)pError;
2389- (void)acceptInvitationFromGroup:(NSString *_Nonnull)aGroupId
2390 inviter:(NSString *_Nonnull)aUsername
2391 completion:(
void (^_Nullable)(
EMGroup *_Nullable aGroup,
EMError *_Nullable aError))aCompletionBlock;
2416- (
EMError *)declineInvitationFromGroup:(NSString *_Nonnull)aGroupId
2417 inviter:(NSString *_Nonnull)aUsername
2418 reason:(NSString *_Nullable)aReason;
2443- (void)declineGroupInvitation:(NSString *_Nonnull)aGroupId
2444 inviter:(NSString *_Nonnull)aInviter
2445 reason:(NSString *_Nullable)aReason
2446 completion:(
void (^_Nullable)(
EMError *_Nullable aError))aCompletionBlock;
2486- (void)getJoinedGroupsFromServerWithPage:(NSInteger)aPageNum
2487 pageSize:(NSInteger)aPageSize
2488 needMemberCount:(BOOL)aNeedMemberCount
2489 needRole:(BOOL)aNeedRole
2490 completion:(
void (^_Nullable)(NSArray<
EMGroup *> *_Nullable aList,
EMError *_Nullable aError))aCompletionBlock;
2492#pragma mark - Group member attributes
2510- (void)setMemberAttribute:(NSString *_Nonnull)groupId userId:(NSString *_Nonnull)userId attributes:(NSDictionary<NSString*,NSString*> *_Nonnull)attributes completion:(
void (^_Nullable)(
EMError *_Nullable error))completionBlock;
2533- (void)fetchMemberAttribute:(NSString *_Nonnull)groupId userId:(NSString *_Nonnull)userId completion:(
void (^ _Nullable)(NSDictionary<NSString *,NSString *> * _Nullable,
EMError * _Nullable))completionBlock;
2558- (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;
Definition: EMCursorResult.h:27
Definition: EMGroupMemberInfo.h:28
Definition: EMGroupOptions.h:42
Definition: EMGroupSharedFile.h:24
Definition: EMGroupManagerDelegate.h:40
Definition: IEMGroupManager.h:31
void cleanAllGroupsFromDB()
NSArray< EMGroup * > *_Nullable getJoinedGroups()
Definition: IEMPushManager.h:31