list method

Future<ListEntity<GroupInfoEntity>> list({
  1. int limit = 100,
  2. OrderDirection orderDirection = OrderDirection.Asc,
  3. int? offset,
  4. DateTime? fromDate,
})

Retrieve groups

limit a preferred amount of groups in a list for a single response. fromDate a starting point for filtering group lists. orderDirection specifies the way groups are sorted in a returned list,

Implementation

Future<ListEntity<GroupInfoEntity>> list({
  int limit = 100,
  OrderDirection orderDirection = OrderDirection.Asc,
  int? offset,
  DateTime? fromDate,
}) async {
  assert(limit > 0 && limit <= 1000, 'Should be in 1..1000 range');

  final request = createRequest(
      'GET',
      buildUri('$apiUrl/groups/', {
        'limit': limit.toString(),
        if (offset != null) 'offset': offset.toString(),
        'ordering': orderDirection == OrderDirection.Asc
            ? 'datetime_created'
            : '-datetime_created',
        if (fromDate != null) 'from': fromDate.toIso8601String(),
      }));

  final response = await resolveStreamedResponse(request.send());

  return ListEntity.fromJson(
      response,
      (response['results'] as List)
          .map((item) => GroupInfoEntity.fromJson(item))
          .toList());
}