getSubSet<T> function

MockResponse<T> getSubSet<T>({
  1. required Iterable<T> items,
  2. int? page,
  3. int? size,
  4. String? sorting,
})

Implementation

MockResponse<T> getSubSet<T>(
    {required final Iterable<T> items, final int? page, final int? size, final String? sorting}) {
  final pageFilter = page == null || page < defaultPage ? defaultPage : page;
  final pageSizeFilter = size ?? defaultPageSize;

  final start = pageFilter == 1 ? 0 : (pageFilter - 1) * pageSizeFilter;
  var end = start + pageSizeFilter;

  if (start > items.length) {
    return MockResponse.empty(
        pageBuilder: _createPageBuilder(
            page: pageFilter, size: pageSizeFilter, items: [], allItems: items.toList(growable: false)));
  }

  if (end > items.length) {
    end = items.length;
  }

  final returnItems = items.toList(growable: false).sublist(start, end);
  final listBuilder = returnItems.toBuiltList().toBuilder();
  final pageBuilder =
      _createPageBuilder(page: pageFilter, size: pageSizeFilter, items: returnItems, allItems: items.toList());
  return MockResponse<T>.data(listBuilder: listBuilder, pageBuilder: pageBuilder);
}