Skip to content

Commit 3ad6cd3

Browse files
committed
add chatroom api
1 parent 64b48d1 commit 3ad6cd3

File tree

1 file changed

+190
-0
lines changed

1 file changed

+190
-0
lines changed

ios/RCTJMessageModule/RCTJMessageModule.m

Lines changed: 190 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2227,4 +2227,194 @@ - (JMSGOptionalContent *)convertDicToJMSGOptionalContent:(NSDictionary *)dic {
22272227
}];
22282228
}
22292229

2230+
2231+
2232+
/**
2233+
* 查询当前 AppKey 下的聊天室信息
2234+
* @param {object} param = {
2235+
* "start": number, // 起始位置
2236+
* "count": number, // 获取个数
2237+
* }
2238+
* ChatRoomInfo = {
2239+
* "roomId": String,
2240+
* "roomName": String,
2241+
* "appKey": String,
2242+
* "maxMemberCount": number,
2243+
* "totalMemberCount": number,
2244+
* "owner": UserInfo,
2245+
* "description": String,
2246+
* "createTime": number,
2247+
* }
2248+
* @param {function} success = function([{chatRoomInfo}])
2249+
* @param {function} error = function ({'code': '错误码', 'description': '错误信息'}) {}
2250+
*/
2251+
//static getChatRoomListByApp(param, success, error) {
2252+
RCT_EXPORT_METHOD(getChatRoomListByApp:(NSDictionary *)param
2253+
successCallback:(RCTResponseSenderBlock)successCallback
2254+
failCallBack:(RCTResponseSenderBlock)failCallback) {
2255+
NSNumber *start = nil;
2256+
NSNumber *count = nil;
2257+
if (!param[@"start"]) {
2258+
start = param[@"start"];
2259+
return;
2260+
}
2261+
2262+
if (!param[@"count"]) {
2263+
count = param[@"count"];
2264+
return;
2265+
}
2266+
2267+
NSString *appKey = nil;
2268+
if (param[@"appKey"]) {
2269+
appKey = param[@"appKey"];
2270+
} else {
2271+
appKey = [JMessageHelper shareInstance].JMessageAppKey;
2272+
}
2273+
2274+
[JMSGChatRoom getChatRoomListWithAppKey:appKey start:[start integerValue] count:[count integerValue] completionHandler:^(id resultObject, NSError *error) {
2275+
if (error) {
2276+
failCallback(@[[error errorToDictionary]]);
2277+
return;
2278+
}
2279+
NSArray *chatRoomArr = resultObject;
2280+
NSArray *chatRoomDicArr = [chatRoomArr mapObjectsUsingBlock:^id(id obj, NSUInteger idx) {
2281+
JMSGChatRoom *chatRoom = obj;
2282+
return [chatRoom chatRoomToDictionary];
2283+
}];
2284+
2285+
successCallback(@[chatRoomDicArr]);
2286+
}];
2287+
}
2288+
2289+
/**
2290+
* 获取当前用户所加入的所有聊天室信息
2291+
* @param {function} success = function([{ChatRoomInfo}])
2292+
* @param {function} error = function ({'code': '错误码', 'description': '错误信息'}) {}
2293+
*/
2294+
//static getChatRoomListByUser(success, error) {
2295+
RCT_EXPORT_METHOD(getChatRoomListByUser:(NSDictionary *)param
2296+
successCallback:(RCTResponseSenderBlock)successCallback
2297+
failCallBack:(RCTResponseSenderBlock)failCallback) {
2298+
[JMSGChatRoom getMyChatRoomListCompletionHandler:^(id resultObject, NSError *error) {
2299+
if (error) {
2300+
failCallback(@[[error errorToDictionary]]);
2301+
return;
2302+
}
2303+
2304+
NSArray *chatRoomArr = resultObject;
2305+
NSArray *chatRoomDicArr = [chatRoomArr mapObjectsUsingBlock:^id(id obj, NSUInteger idx) {
2306+
JMSGChatRoom *chatRoom = obj;
2307+
return [chatRoom chatRoomToDictionary];
2308+
}];
2309+
successCallback(@[chatRoomDicArr]);
2310+
}];
2311+
2312+
}
2313+
2314+
/**
2315+
* 查询指定 roomId 聊天室信息
2316+
* @param {Array} param = [String]
2317+
* @param {function} success = function([{ChatRoomInfo}])
2318+
* @param {function} error = function ({'code': '错误码', 'description': '错误信息'}) {}
2319+
*/
2320+
//static getChatRoomInfos(param, success, error) {
2321+
RCT_EXPORT_METHOD(getChatRoomInfos:(NSDictionary *)param
2322+
successCallback:(RCTResponseSenderBlock)successCallback
2323+
failCallBack:(RCTResponseSenderBlock)failCallback) {
2324+
if (!param[@"roomIds"]) {
2325+
failCallback(@[[self getParamError]]);
2326+
return;
2327+
}
2328+
2329+
[JMSGChatRoom getChatRoomInfosWithRoomIds:param[@"roomIds"] completionHandler:^(id resultObject, NSError *error) {
2330+
if (error) {
2331+
failCallback(@[[error errorToDictionary]]);
2332+
return;
2333+
}
2334+
2335+
NSArray *chatRoomArr = resultObject;
2336+
NSArray *chatRoomDicArr = [chatRoomArr mapObjectsUsingBlock:^id(id obj, NSUInteger idx) {
2337+
JMSGChatRoom *chatRoom = obj;
2338+
return [chatRoom chatRoomToDictionary];
2339+
}];
2340+
2341+
successCallback(@[chatRoomDicArr]);
2342+
}];
2343+
}
2344+
2345+
/**
2346+
* 进入聊天室,进入后才能收到聊天室信息及发言
2347+
* @param {String} roomId
2348+
* @param {function} success = function({conversation})
2349+
* @param {function} error = function ({'code': '错误码', 'description': '错误信息'}) {}
2350+
*/
2351+
//static enterChatRoom(roomId, success, error) {
2352+
RCT_EXPORT_METHOD(enterChatRoom:(NSDictionary *)param
2353+
successCallback:(RCTResponseSenderBlock)successCallback
2354+
failCallBack:(RCTResponseSenderBlock)failCallback) {
2355+
if (!param[@"roomId"]) {
2356+
failCallback(@[[self getParamError]]);
2357+
return;
2358+
}
2359+
2360+
[JMSGChatRoom enterChatRoomWithRoomId:param[@"roomId"] completionHandler:^(id resultObject, NSError *error) {
2361+
if (error) {
2362+
failCallback(@[[error errorToDictionary]]);
2363+
return;
2364+
}
2365+
2366+
JMSGConversation *conversation = resultObject;
2367+
successCallback(@[[conversation conversationToDictionary]]);
2368+
}];
2369+
}
2370+
2371+
/**
2372+
* 离开聊天室
2373+
* @param {String} roomId
2374+
* @param {function} success = function(0)
2375+
* @param {function} error = function ({'code': '错误码', 'description': '错误信息'}) {}
2376+
*/
2377+
//static leaveChatRoom(roomId, success, error) {
2378+
RCT_EXPORT_METHOD(leaveChatRoom:(NSDictionary *)param
2379+
successCallback:(RCTResponseSenderBlock)successCallback
2380+
failCallBack:(RCTResponseSenderBlock)failCallback) {
2381+
if (!param[@"roomId"]) {
2382+
failCallback(@[[self getParamError]]);
2383+
return;
2384+
}
2385+
2386+
[JMSGChatRoom leaveChatRoomWithRoomId:param[@"roomId"] completionHandler:^(id resultObject, NSError *error) {
2387+
if (error) {
2388+
failCallback(@[[error errorToDictionary]]);
2389+
return;
2390+
}
2391+
successCallback(@[]);
2392+
}];
2393+
}
2394+
2395+
/**
2396+
* 从本地获取用户的聊天室会话列表,没有则返回为空的列表
2397+
* @param {function} callback = function([{Conversation}])
2398+
*
2399+
*/
2400+
//static getChatRoomConversationList(callback) {
2401+
RCT_EXPORT_METHOD(getChatRoomConversationList:(NSDictionary *)param
2402+
successCallback:(RCTResponseSenderBlock)successCallback
2403+
failCallBack:(RCTResponseSenderBlock)failCallback) {
2404+
[JMSGConversation allChatRoomConversation:^(id resultObject, NSError *error) {
2405+
if (error) {
2406+
failCallback(@[[error errorToDictionary]]);
2407+
return;
2408+
}
2409+
2410+
NSArray *conversationArr = resultObject;
2411+
NSArray *conversationDicArr = [conversationArr mapObjectsUsingBlock:^id(id obj, NSUInteger idx) {
2412+
JMSGConversation *conversation = obj;
2413+
return [conversation conversationToDictionary];
2414+
}];
2415+
successCallback(@[conversationDicArr]);
2416+
}];
2417+
}
2418+
2419+
22302420
@end

0 commit comments

Comments
 (0)