getGroupMessageReadMemberList method
Future<V2TimValueCallback<V2TimGroupMessageReadMemberList> >
getGroupMessageReadMemberList({
- required String messageID,
- required GetGroupMessageReadMemberListFilter filter,
- int nextSeq = 0,
- int count = 100,
Implementation
Future<V2TimValueCallback<V2TimGroupMessageReadMemberList>> getGroupMessageReadMemberList({
required String messageID,
required GetGroupMessageReadMemberListFilter filter,
int nextSeq = 0,
int count = 100,
}) async {
try {
final originalMessage = timeweb!.findMessage(messageID);
final messageMap = jsToMap(originalMessage);
final conversationID = messageMap['conversationID'] as String;
final conversationType = messageMap['conversationType'] as String;
final groupID = conversationID.replaceAll(conversationType, "");
final filterParam = filter.index;
final params = mapToJSObj({
"message": originalMessage,
"filter": filterParam,
"count": count,
"cursor": nextSeq == 0 ? '' : nextSeq.toString(),
});
final res = await wrappedPromiseToFuture(timeweb!.getGroupMessageReadMemberList(params));
if (res.code == 0) {
final responseData = jsToMap(res.data);
final userIDList = responseData[filterParam == 0 ? 'readUserIDList' : 'unreadUserIDList'] as List;
var memberInfoList = [];
if (userIDList.isNotEmpty) {
final response = await wrappedPromiseToFuture(timeweb!.getGroupMemberProfile(mapToJSObj({
"groupID": groupID,
"userIDList": userIDList,
})));
final memberList = jsToMap(response.data)['memberList'] as List;
memberInfoList = GetGroupMemberList.formateGroupResult(memberList);
}
final responseValue = {
"nextSeq": int.parse(responseData['cursor']),
"isFinished": responseData['isCompleted'],
"memberInfoList": memberInfoList,
};
return CommonUtils.returnSuccess<V2TimGroupMessageReadMemberList>(responseValue);
}
return CommonUtils.returnSuccess<V2TimGroupMessageReadMemberList>([]);
} catch (error) {
return CommonUtils.returnErrorForValueCb<V2TimGroupMessageReadMemberList>(error.toString());
}
}