request method
A function called when a request reaches this Link
Implementation
@override
Stream<Response> request(Request request, [forward]) async* {
final dio.Response<Map<String, dynamic>> dioResponse =
await _executeDioRequest(
request: request,
headers: <String, String>{
dio.Headers.acceptHeader: "*/*",
dio.Headers.contentTypeHeader: dio.Headers.jsonContentType,
...defaultHeaders,
..._getHttpLinkHeaders(request),
},
isQuery: request.isQuery,
);
if (dioResponse.statusCode! >= 300 ||
(dioResponse.data!["data"] == null &&
dioResponse.data!["errors"] == null)) {
throw DioLinkServerException(
response: dioResponse,
parsedResponse: _parseDioResponse(dioResponse),
statusCode: dioResponse.statusCode,
);
}
final gqlResponse = _parseDioResponse(dioResponse);
yield Response(
data: gqlResponse.data,
errors: gqlResponse.errors,
response: gqlResponse.response,
context: _updateResponseContext(gqlResponse, dioResponse),
);
}