fetchMembersAttributes method
Gets custom attributes of multiple group members by attribute keys.
Param groupId The group ID.
Param userIds The list of user IDs of group members (max 10 users).
Param keys The list of attribute keys to retrieve.
Returns Member attributes in format: { userId: { key: value } }.
Throws Exception description, see ChatError.
Implementation
Future<Map<String, Map<String, String>>> fetchMembersAttributes({
required String groupId,
required List<String> userIds,
List<String>? keys,
}) async {
try {
Map req = {'groupId': groupId, 'userIds': userIds};
req.putIfNotNull("keys", keys);
Map result = await platform_interface.Client.instance.groupManager.callNativeMethod(
ChatMethodKeys.fetchMembersAttributesFromGroup, req);
ChatError.hasErrorFromResult(result);
var map = result[ChatMethodKeys.fetchMembersAttributesFromGroup];
Map<String, Map<String, String>> ret = {};
if (map is Map) {
for (var element in map.keys) {
if (map[element] is Map) {
Map<String, String> value =
Map<String, String>.from(map[element] ?? {});
ret[element] = value;
}
}
}
return ret;
} catch (e) {
rethrow;
}
}