usersToMap static method
Future<Map<String, dynamic> ?>
usersToMap(
- TwilioConversationsPlugin pluginInstance,
- TwilioConversationsClient chatClient
Implementation
static Future<Map<String, dynamic>?> usersToMap(
TwilioConversationsPlugin pluginInstance,
TwilioClient.TwilioConversationsClient chatClient,
) async {
List<dynamic>? users = [];
try {
users = await js_util.promiseToFuture<List<dynamic>?>(
chatClient.getSubscribedUsers(),
);
} catch (e) {
Logging.debug('error getting users: $e');
}
if (users!.isEmpty) return {};
var myUser = {
"friendlyName": "",
"attributes": {},
"identity": chatClient.user.identity,
"isOnline": "",
"isNotifiable": "",
"isSubscribed": ""
};
late final subscribedUsersMap;
try {
subscribedUsersMap = await Future.wait(
users
.map((user) => userToMap(
user,
chatClient,
))
.toList(),
);
} catch (e) {
Logging.debug("error in userToMap: $e");
}
try {
return {
"subscribedUsers": subscribedUsersMap ?? {},
"myUser": await userToMap(myUser, chatClient)
};
} catch (e) {
Logging.debug("error mapping myUser: $e");
return {"subscribedUsers": subscribedUsersMap ?? {}, "myUser": emptyUser};
}
}