PublicGroupChannelListRequest constructor

PublicGroupChannelListRequest({
  1. required PublicGroupChannelListOrder order,
  2. String? token,
  3. int limit = 30,
  4. List<String>? channelUrls,
  5. List<ChannelQueryIncludeOption> options = const [],
  6. required GroupChannelFilter filter,
  7. String? userId,
})

Implementation

PublicGroupChannelListRequest({
  required PublicGroupChannelListOrder order,
  String? token,
  int limit = 30,
  List<String>? channelUrls,
  List<ChannelQueryIncludeOption> options = const [],
  required GroupChannelFilter filter,
  String? userId,
}) : super(userId: userId) {
  url = 'group_channels';
  queryParams = {
    'user_id': userId ?? state.userId,
    if (channelUrls != null && channelUrls.isNotEmpty)
      'channelUrls': channelUrls,
    'order': publicGroupChannelListOrderEnumMap[order],
    'distinct_mode': 'all',
    'token': token,
    'limit': limit,
  };

  queryParams.addAll(options.toJson());
  queryParams.addAll(filter.toJson());

  if (order == PublicGroupChannelListOrder.channelMetaDataValueAlphabetical &&
      filter.metadataOrderKey != null) {
    queryParams['metadata_order_key'] = filter.metadataOrderKey;
  }

  queryParams.removeWhere((key, value) => value == null);
}