channelToMap static method
Future<Map<String, dynamic> ?>
channelToMap(
- TwilioConversationsPlugin pluginInstance,
- TwilioConversationsChannel? channel
Implementation
static Future<Map<String, dynamic>?> channelToMap(
TwilioConversationsPlugin pluginInstance,
TwilioConversationsChannel? channel,
) async {
if (channel == null) {
return null;
}
if (!pluginInstance.channelChannels.containsKey(channel.sid)) {
final channelStreamController =
StreamController<Map<String, dynamic>>.broadcast();
pluginInstance.channelChannels[channel.sid] = ChannelEventListener(
pluginInstance,
channel,
channelStreamController,
);
pluginInstance.channelChannels[channel.sid]!.addListeners();
pluginInstance.channelListeners[channel.sid] = channelStreamController;
}
try {
final messages = await js_util
.promiseToFuture<JSPaginator<TwilioConversationsMessage>>(
channel.getMessages(50, 0, "forward"),
);
return channelMapped(pluginInstance, channel, messages);
} catch (e) {
return channelMapped(pluginInstance, channel, null);
}
}