findAll method

Future<List<T>> findAll({
  1. int? limit,
  2. int? offset,
  3. String? orderBy,
  4. bool ascending = true,
  5. Map<String, dynamic>? filters,
})

Retrieves all records from this table with support for:

  • Pagination using limit and offset
  • Sorting by orderBy in ascending order
  • Filtering using filters

All parameters are optional.

Implementation

Future<List<T>> findAll({
  int? limit,
  int? offset,
  String? orderBy,
  bool ascending = true,
  Map<String, dynamic>? filters,
}) async {
  dynamic queryBuilder = query.select();

  if (filters != null) {
    filters.forEach((key, value) {
      queryBuilder = queryBuilder.eq(key, value);
    });
  }

  if (orderBy != null) {
    queryBuilder = queryBuilder.order(orderBy, ascending: ascending);
  }

  if (limit != null) {
    queryBuilder = queryBuilder.limit(limit);
  }

  if (offset != null) {
    queryBuilder = queryBuilder.range(offset, offset + (limit ?? 10) - 1);
  }

  final response = await queryBuilder;
  return (response as List).map((json) => fromJson(json)).toList();
}