get<_Model extends GraphqlModel> method

  1. @override
Future<List<_Model>> get<_Model extends GraphqlModel>({
  1. Query? query,
  2. ModelRepository<GraphqlModel>? repository,
})

Query for raw data and construct it with an Adapter

Implementation

@override
Future<List<_Model>> get<_Model extends GraphqlModel>({query, repository}) async {
  final adapter = modelDictionary.adapterFor[_Model]!;
  final request = createRequest<_Model>(action: QueryAction.get, query: query);
  final resp = await link.request(request).first;
  if (resp.data == null) return [];
  if (resp.data?.values.first is Iterable) {
    final results = resp.data?.values.first
        .map((v) => adapter.fromGraphql(v, provider: this, repository: repository))
        .toList()
        .cast<Future<_Model>>();

    return await Future.wait<_Model>(results);
  }

  return [
    await adapter.fromGraphql(resp.data!, provider: this, repository: repository) as _Model
  ];
}