getList<D extends Dto<D>, F extends DtoFilter<D>, E extends DtoExpand<D>, S extends DtoSort<D>, F2 extends DtoFieldSelect<D>> method

Future<Page<D>> getList<D extends Dto<D>, F extends DtoFilter<D>, E extends DtoExpand<D>, S extends DtoSort<D>, F2 extends DtoFieldSelect<D>>(
  1. DtoMeta<D, F, E, S, F2> meta, {
  2. PageRequest? page,
  3. bool skipTotal = false,
  4. void expand(
    1. E
    )?,
  5. void filter(
    1. F
    )?,
  6. void sort(
    1. S
    )?,
  7. void fields(
    1. F2
    )?,
  8. Map<String, dynamic> query = const {},
  9. Map<String, String> headers = const {},
})

Implementation

Future<Page<D>> getList<
  D extends Dto<D>,
  F extends DtoFilter<D>,
  E extends DtoExpand<D>,
  S extends DtoSort<D>,
  F2 extends DtoFieldSelect<D>
>(
  DtoMeta<D, F, E, S, F2> meta, {
  PageRequest? page,
  bool skipTotal = false,
  void Function(E)? expand,
  void Function(F)? filter,
  void Function(S)? sort,
  void Function(F2)? fields,
  Map<String, dynamic> query = const {},
  Map<String, String> headers = const {},
}) async {
  var collection = meta.collectionName;
  var perPage = page?.perPage;
  ResultList<RecordModel> result = perPage == null
      ? await _pb
            .collection(collection)
            .getList(
              page: page?.page ?? 1,
              skipTotal: skipTotal,
              expand: _build(meta.expansions, expand)?.toString(),
              filter: _build(meta.filter, filter)?.toString(),
              sort: _build(meta.sort, sort)?.toString(),
              fields: _build(meta.fields, fields)?.toString(),
              query: query,
              headers: headers,
            )
      : await _pb
            .collection(collection)
            .getList(
              page: page?.page ?? 1,
              perPage: perPage,
              skipTotal: skipTotal,
              expand: _build(meta.expansions, expand)?.toString(),
              filter: _build(meta.filter, filter)?.toString(),
              sort: _build(meta.sort, sort)?.toString(),
              fields: _build(meta.fields, fields)?.toString(),
              query: query,
              headers: headers,
            );
  return Page._fromResult(meta, result);
}