sendRequest<T extends OpenApiResponse> method

Future<T> sendRequest<T extends OpenApiResponse>(
  1. OpenApiClientRequest request,
  2. Map<String, ResponseParser<T>> parserMap
)

Implementation

Future<T> sendRequest<T extends OpenApiResponse>(OpenApiClientRequest request,
    Map<String, ResponseParser<T>> parserMap) async {
  for (final security in request.securityRequirement) {
    for (final scheme in security.schemes) {
      final data = _securitySchemeData[scheme.scheme];
      if (data == null) {
        _logger.warning('Missing security scheme data for request.'
            ' $scheme to ${request.path}');
        continue;
      }
      scheme.scheme.applyToRequest(request, data);
    }
  }
  final response = await requestSender.sendRequest(baseUri, request);
  final parser =
      parserMap[response.status.toString()] ?? parserMap['default'];
  if (parser == null) {
    throw UnexpectedResponseException(
      response: response,
      request: request,
      status: response.status,
    );
  }
  final parsedResponse = await parser(response);
  parsedResponse.headers.addAll(response.headers);
  return parsedResponse;
}