channels method

Future<PaginatedResult<FirestackChannel>> channels({
  1. required int projectId,
  2. int perPage = 20,
  3. int page = 1,
})

List channels the authenticated user belongs to.

Implementation

Future<PaginatedResult<FirestackChannel>> channels({
  required int projectId,
  int perPage = 20,
  int page = 1,
}) async {
  final response = await _client.get('channels', queryParams: {
    'project_id': projectId.toString(),
    'per_page': perPage.toString(),
    'page': page.toString(),
  });
  final items = (response['data'] as List)
      .map((e) => FirestackChannel.fromJson(e as Map<String, dynamic>))
      .toList();
  final meta = response['meta'] as Map<String, dynamic>? ?? {};
  return PaginatedResult<FirestackChannel>(
    data: items,
    currentPage: meta['current_page'] as int? ?? page,
    perPage: meta['per_page'] as int? ?? perPage,
    total: meta['total'] as int? ?? items.length,
    lastPage: meta['last_page'] as int? ?? 1,
  );
}