findAll method
Retrieves all records from this table with support for:
- Pagination using
limitandoffset - Sorting by
orderByinascendingorder - 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();
}