getChannelStateByCid method

Future<ChannelState> getChannelStateByCid(
  1. String cid, {
  2. PaginationParams? messagePagination,
  3. PaginationParams? pinnedMessagePagination,
})
inherited

Get ChannelState data by providing channel cid

Implementation

Future<ChannelState> getChannelStateByCid(
  String cid, {
  PaginationParams? messagePagination,
  PaginationParams? pinnedMessagePagination,
}) async {
  final (members, reads, channel, messages, pinnedMessages, draft) = await (
    getMembersByCid(cid),
    getReadsByCid(cid),
    getChannelByCid(cid),
    getMessagesByCid(cid, messagePagination: messagePagination),
    getPinnedMessagesByCid(cid, messagePagination: pinnedMessagePagination),
    getDraftMessageByCid(cid),
  ).wait;

  final membership = switch (userId) {
    final userId? => members?.firstWhereOrNull((it) => it.userId == userId),
    _ => null,
  };

  return ChannelState(
    members: members,
    membership: membership,
    read: reads,
    channel: channel,
    messages: messages,
    pinnedMessages: pinnedMessages,
    draft: draft,
  );
}