getChannelThreads method

  1. @override
Future<Map<String, List<Message>>> getChannelThreads(
  1. String cid
)

Returns all the threads by parent message of a particular channel by providing channel cid

Implementation

@override
Future<Map<String, List<Message>>> getChannelThreads(String cid) async {
  assert(_debugIsConnected, '');
  _logger.info('getChannelThreads');
  final messages = await db!.messageDao.getThreadMessages(cid);
  final messageByParentIdDictionary = <String, List<Message>>{};
  for (final message in messages) {
    final parentId = message.parentId!;
    messageByParentIdDictionary[parentId] = [
      ...messageByParentIdDictionary[parentId] ?? [],
      message,
    ];
  }

  return messageByParentIdDictionary;
}