Skip to content

Commit 42d3cb0

Browse files
committed
update iOS: add group api
1 parent 34b37c1 commit 42d3cb0

File tree

4 files changed

+253
-6
lines changed

4 files changed

+253
-6
lines changed

index.js

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1290,5 +1290,54 @@ export default class JMessage {
12901290
static dissolveGroup(param, success, error) {
12911291
JMessageModule.dissolveGroup(param, success, error);
12921292
}
1293+
/**
1294+
* 移交群主
1295+
* @param {object} params = { groupId: string , username: string, appKey: string}
1296+
* @param {function} success = function = _ => {}
1297+
* @param {function} error = function ({'code': '错误码', 'description': '错误信息'}) {}
1298+
*/
1299+
static transferGroupOwner(param, success, error) {
1300+
JMessageModule.transferGroupOwner(param, success, error);
1301+
}
1302+
1303+
/**
1304+
* 设置禁言或解禁用户
1305+
* @param {object} params = { groupId: string, isSilence: Boolean, username: string, appKey: string }
1306+
* @param {function} success = _ => {}
1307+
* @param {function} error = function ({'code': '错误码', 'description': '错误信息'}) {}
1308+
*/
1309+
static setGroupMemberSilence(param, success, error) {
1310+
JMessageModule.setGroupMemberSilence(param, success, error);
1311+
}
1312+
1313+
/**
1314+
* 判断用户是否被禁言
1315+
* @param {object} params = { groupId: string, username: string, appKey: string }
1316+
* @param {function} success = ({isSilence: Boolean}) {}
1317+
* @param {function} error = function ({'code': '错误码', 'description': '错误信息'}) {}
1318+
*/
1319+
static isSilenceMember(param, success, error) {
1320+
JMessageModule.isSilenceMember(param, success, error);
1321+
}
1322+
1323+
/**
1324+
* 获取群禁言列表 (注意在获取群列表成功后该方法才有效)
1325+
* @param {object} params = { groupId: string}
1326+
* @param {function} success
1327+
* @param {function} error = function ({'code': '错误码', 'description': '错误信息'}) {}
1328+
*/
1329+
static groupSilenceMembers(param, success, error) {
1330+
JMessageModule.groupSilenceMembers(param, success, error);
1331+
}
1332+
1333+
/**
1334+
* 设置群成员昵称
1335+
* @param {object} params = { nickName: string, groupId: string , username: string, appKey: string}
1336+
* @param {function} success = _ => {}
1337+
* @param {function} error = function ({'code': '错误码', 'description': '错误信息'}) {}
1338+
*/
1339+
static setGroupNickname(param, success, error) {
1340+
JMessageModule.setGroupNickname(param, success, error);
1341+
}
12931342

12941343
}

ios/RCTJMessageModule/JMessageHelper.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,10 @@
7474
-(NSMutableDictionary*)groupToDictionary;
7575
@end
7676

77+
@interface JMSGGroupMemberInfo (JMessage)
78+
- (NSMutableDictionary *)memberToDictionary;
79+
@end
80+
7781
@interface JMSGMessage (JMessage)
7882
- (NSMutableDictionary *)messageToDictionary;
7983
@end

ios/RCTJMessageModule/JMessageHelper.m

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -501,6 +501,28 @@ -(NSMutableDictionary*)groupToDictionary{
501501
}
502502
@end
503503

504+
@implementation JMSGGroupMemberInfo (JMessage)
505+
- (NSMutableDictionary *)memberToDictionary {
506+
NSMutableDictionary *dict = [NSMutableDictionary dictionary];
507+
dict[@"user"] = [self.user userToDictionary];
508+
dict[@"groupNickname"] = [self displayName] ? : @"";
509+
510+
switch (self.memberType) {
511+
case kJMSGGroupMemberTypeOrdinary:
512+
dict[@"memberType"] = @"ordinary";
513+
break;
514+
case kJMSGGroupMemberTypeOwner:
515+
516+
break;
517+
case kJMSGGroupMemberTypeAdmin:
518+
dict[@"memberType"] = @"admin";
519+
break;
520+
}
521+
dict[@"joinGroupTime"] = @(self.ctime);
522+
return dict;
523+
}
524+
@end
525+
504526
@implementation JMSGGroupInfo (JMessage)
505527
-(NSMutableDictionary*)groupToDictionary {
506528
NSMutableDictionary *dict = [NSMutableDictionary dictionary];

ios/RCTJMessageModule/RCTJMessageModule.m

Lines changed: 178 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1316,17 +1316,19 @@ - (JMSGOptionalContent *)convertDicToJMSGOptionalContent:(NSDictionary *)dic {
13161316

13171317
JMSGGroup *group = resultObject;
13181318

1319-
[group memberArrayWithCompletionHandler:^(id resultObject, NSError *error) {
1319+
[group memberInfoList:^(id resultObject, NSError *error) {
13201320
if (error) {
13211321
failCallback(@[[error errorToDictionary]]);
13221322
return ;
13231323
}
1324-
NSArray *userList = resultObject;
1325-
NSMutableArray *usernameList = @[].mutableCopy;
1326-
for (JMSGUser *user in userList) {
1327-
[usernameList addObject:[user username]];
1324+
1325+
NSArray *memberList = resultObject;
1326+
NSMutableArray *memberInfoList = @[].mutableCopy;
1327+
for (JMSGGroupMemberInfo *member in memberList) {
1328+
[memberInfoList addObject:[member memberToDictionary]];
13281329
}
1329-
successCallback(@[usernameList]);
1330+
1331+
successCallback(@[memberInfoList]);
13301332
}];
13311333
}];
13321334
}
@@ -2791,4 +2793,174 @@ - (JMSGOptionalContent *)convertDicToJMSGOptionalContent:(NSDictionary *)dic {
27912793
successCallback(@[]);
27922794
}];
27932795
}
2796+
2797+
2798+
RCT_EXPORT_METHOD(transferGroupOwner:(NSDictionary *)param
2799+
successCallback:(RCTResponseSenderBlock)successCallback
2800+
failCallBack:(RCTResponseSenderBlock)failCallback) {
2801+
2802+
if (param[@"groupId"] == nil ||
2803+
param[@"username"] == nil) {
2804+
failCallback(@[[self getParamError]]);
2805+
return;
2806+
}
2807+
2808+
NSString *appKey = nil;
2809+
if (param[@"appKey"]) {
2810+
appKey = param[@"appKey"];
2811+
} else {
2812+
appKey = [JMessageHelper shareInstance].JMessageAppKey;
2813+
}
2814+
2815+
[JMSGGroup groupInfoWithGroupId:param[@"groupId"] completionHandler:^(id resultObject, NSError *error) {
2816+
if (error) {
2817+
failCallback(@[[error errorToDictionary]]);
2818+
return;
2819+
}
2820+
2821+
JMSGGroup *group = resultObject;
2822+
[group transferGroupOwnerWithUsername:param[@"username"] appKey:appKey completionHandler:^(id resultObject, NSError *error) {
2823+
if (error) {
2824+
failCallback(@[[error errorToDictionary]]);
2825+
return;
2826+
}
2827+
successCallback(@[]);
2828+
}];
2829+
}];
2830+
}
2831+
2832+
2833+
RCT_EXPORT_METHOD(setGroupMemberSilence:(NSDictionary *)param
2834+
successCallback:(RCTResponseSenderBlock)successCallback
2835+
failCallBack:(RCTResponseSenderBlock)failCallback) {
2836+
2837+
if (param[@"groupId"] == nil ||
2838+
param[@"username"] == nil ||
2839+
param[@"isSilence"] == nil) {
2840+
failCallback(@[[self getParamError]]);
2841+
return;
2842+
}
2843+
2844+
NSString *appKey = nil;
2845+
if (param[@"appKey"]) {
2846+
appKey = param[@"appKey"];
2847+
} else {
2848+
appKey = [JMessageHelper shareInstance].JMessageAppKey;
2849+
}
2850+
2851+
[JMSGGroup groupInfoWithGroupId:param[@"groupId"] completionHandler:^(id resultObject, NSError *error) {
2852+
if (error) {
2853+
failCallback(@[[error errorToDictionary]]);
2854+
return;
2855+
}
2856+
2857+
JMSGGroup *group = resultObject;
2858+
[group setGroupMemberSilence:[param[@"isSilence"] boolValue] username:param[@"username"] appKey:appKey handler:^(id resultObject, NSError *error) {
2859+
if (error) {
2860+
failCallback(@[[error errorToDictionary]]);
2861+
return;
2862+
}
2863+
successCallback(@[]);
2864+
}];
2865+
}];
2866+
}
2867+
2868+
2869+
RCT_EXPORT_METHOD(isSilenceMember:(NSDictionary *)param
2870+
successCallback:(RCTResponseSenderBlock)successCallback
2871+
failCallBack:(RCTResponseSenderBlock)failCallback) {
2872+
2873+
if (param[@"groupId"] == nil ||
2874+
param[@"username"] == nil) {
2875+
failCallback(@[[self getParamError]]);
2876+
return;
2877+
}
2878+
2879+
NSString *appKey = nil;
2880+
if (param[@"appKey"]) {
2881+
appKey = param[@"appKey"];
2882+
} else {
2883+
appKey = [JMessageHelper shareInstance].JMessageAppKey;
2884+
}
2885+
2886+
[JMSGGroup groupInfoWithGroupId:param[@"groupId"] completionHandler:^(id resultObject, NSError *error) {
2887+
if (error) {
2888+
failCallback(@[[error errorToDictionary]]);
2889+
return;
2890+
}
2891+
2892+
JMSGGroup *group = resultObject;
2893+
2894+
BOOL isSilence = [group isSilenceMemberWithUsername:param[@"username"] appKey:appKey];
2895+
successCallback(@[@{@"isSilence": @(isSilence)}]);
2896+
}];
2897+
}
2898+
2899+
RCT_EXPORT_METHOD(groupSilenceMembers:(NSDictionary *)param
2900+
successCallback:(RCTResponseSenderBlock)successCallback
2901+
failCallBack:(RCTResponseSenderBlock)failCallback) {
2902+
if (param[@"groupId"] == nil) {
2903+
failCallback(@[[self getParamError]]);
2904+
return;
2905+
}
2906+
2907+
NSString *appKey = nil;
2908+
if (param[@"appKey"]) {
2909+
appKey = param[@"appKey"];
2910+
} else {
2911+
appKey = [JMessageHelper shareInstance].JMessageAppKey;
2912+
}
2913+
2914+
[JMSGGroup groupInfoWithGroupId:param[@"groupId"] completionHandler:^(id resultObject, NSError *error) {
2915+
if (error) {
2916+
failCallback(@[[error errorToDictionary]]);
2917+
return;
2918+
}
2919+
2920+
JMSGGroup *group = resultObject;
2921+
NSArray *silenceMembers = [group groupSilenceMembers];
2922+
NSArray *silenceUserDicArr = [silenceMembers mapObjectsUsingBlock:^id(id obj, NSUInteger idx) {
2923+
JMSGUser *user = obj;
2924+
return [user userToDictionary];
2925+
}];
2926+
successCallback(@[silenceUserDicArr]);
2927+
}];
2928+
}
2929+
2930+
RCT_EXPORT_METHOD(setGroupNickname:(NSDictionary *)param
2931+
successCallback:(RCTResponseSenderBlock)successCallback
2932+
failCallBack:(RCTResponseSenderBlock)failCallback) {
2933+
2934+
if (param[@"groupId"] == nil ||
2935+
param[@"username"] == nil ||
2936+
param[@"nickName"] == nil) {
2937+
failCallback(@[[self getParamError]]);
2938+
return;
2939+
}
2940+
2941+
NSString *appKey = nil;
2942+
if (param[@"appKey"]) {
2943+
appKey = param[@"appKey"];
2944+
} else {
2945+
appKey = [JMessageHelper shareInstance].JMessageAppKey;
2946+
}
2947+
2948+
[JMSGGroup groupInfoWithGroupId:param[@"groupId"] completionHandler:^(id resultObject, NSError *error) {
2949+
if (error) {
2950+
failCallback(@[[self getParamError]]);
2951+
return;
2952+
}
2953+
2954+
JMSGGroup *group = resultObject;
2955+
2956+
[group setGroupNickname:param[@"nickName"] username:param[@"username"] appKey:appKey handler:^(id resultObject, NSError *error) {
2957+
if (error) {
2958+
failCallback(@[[self getParamError]]);
2959+
return;
2960+
}
2961+
2962+
successCallback(@[]);
2963+
}];
2964+
}];
2965+
}
27942966
@end

0 commit comments

Comments
 (0)