paginate method

Future<Map<String, dynamic>> paginate(
  1. int page, [
  2. int perPage = 15
])

Paginate results

Implementation

Future<Map<String, dynamic>> paginate(int page, [int perPage = 15]) async {
  final offset = (page - 1) * perPage;
  final originalLimit = _limit;
  final originalOffset = _offset;

  _limit = perPage;
  _offset = offset;

  final data = await get();
  final total = await count();

  // Restore original state
  _limit = originalLimit;
  _offset = originalOffset;

  return {
    'data': data,
    'current_page': page,
    'per_page': perPage,
    'total': total,
    'last_page': (total / perPage).ceil(),
  };
}