get<TModel extends GraphqlModel> method
Future<List<TModel> >
get<TModel extends GraphqlModel>({
- Query? query,
- ModelRepository<
GraphqlModel> ? repository,
Query for raw data and construct it with an Adapter
Implementation
@override
Future<List<TModel>> get<TModel extends GraphqlModel>({query, repository}) async {
final adapter = modelDictionary.adapterFor[TModel]!;
final request = GraphqlRequest<TModel>(
action: QueryAction.get,
modelDictionary: modelDictionary,
query: query,
variableNamespace: variableNamespace,
).request;
if (request == null) return <TModel>[];
await for (final resp in link.request(request)) {
if (resp.data?.values == null) return <TModel>[];
if (resp.data!.values.isEmpty || resp.data!.values.first == null) {
return <TModel>[];
}
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<TModel>>();
return await Future.wait<TModel>(results);
}
if (resp.data?.values.first is Map) {
return [
await adapter.fromGraphql(resp.data?.values.first!,
provider: this, repository: repository) as TModel
];
}
return [
await adapter.fromGraphql(resp.data!, provider: this, repository: repository) as TModel
];
}
return <TModel>[];
}