parseResponse method

FutureOr parseResponse(
  1. HttpResponse response, {
  2. HttpMethod? requestMethod,
  3. String? requestPath,
  4. String? methodName,
  5. Map<String, Object?>? parameters,
})

Implementation

FutureOr<dynamic> parseResponse(
  HttpResponse response, {
  HttpMethod? requestMethod,
  String? requestPath,
  String? methodName,
  Map<String, Object?>? parameters,
}) {
  if (response.isError) {
    return parseResponseBody(response).resolveMapped((error) {
      var responseError = APIModuleProxyCallerResponseError(
        'Response ERROR> $error',
        request: {
          'requestMethod': requestMethod?.name,
          'requestPath': requestPath,
          'responseStatus': response.status,
        },
        response: response,
        responseStatus: parseAPIResponseStatus(response.status),
        responseError: error,
        module: modulePath,
        methodName: methodName,
        parameters: parameters,
      );

      final errorHandler = this.errorHandler ??
          defaultErrorHandler ??
          APIModuleProxyCallerListener.defaultErrorHandler;

      if (errorHandler != null) {
        try {
          errorHandler(responseError);
        } catch (e, s) {
          _log.severe("Error calling `errorHandler`!", e, s);
        }
      }

      throw responseError;
    });
  }

  if (response.isNotOK) return null;

  return parseResponseBody(response);
}