executeQuery method

Future executeQuery(
  1. Query query
)

Execute a Query from a Query

Implementation

Future executeQuery(Query query) async {
  final usecase = sl.get<QueryToServer>();
  final _headers = Map<String, String>.from(headers ?? {});
  if (query.headers != null) {
    _headers.addAll(query.headers!);
  }

  var request = Request(
    headers: _headers,
    type: RequestType.query,
    url: url,
    query: query,
  );
  final interceptedValue = await _interceptorExecutor(
    ClientResolver.request(request, this),
  );

  if (interceptedValue is Response) {
    return interceptedValue;
  } else if (interceptedValue is HasuraError) {
    throw interceptedValue;
  } else {
    request = interceptedValue;
  }

  final result = await usecase(request: request);
  return (await result.fold(_interceptError, _interceptResponse)).data;
}