handleResponse<T extends BaseApiResponse> static method

ResponseModel<T> handleResponse<T extends BaseApiResponse>(
  1. T parser(
    1. Map<String, dynamic> body
    ),
  2. Response apiResponse
)

Implementation

static ResponseModel<T> handleResponse<T extends BaseApiResponse>(
  T Function(Map<String, dynamic> body) parser,
  Response apiResponse,
) {
  final T response = parser(apiResponse.data as Map<String, dynamic>);

  if (apiResponse.headers.value("x-auth-error") == "InvalidCredentials") {
    return ResponseModel<T>(
      status: ResponseStatus.responseError,
      response: response,
      error: response.message,
    );
  }
  if (apiResponse.statusCode == 401) {
    throw UnauthorizedException(apiResponse.requestOptions);
  }
  if ((apiResponse.statusCode! < 300 && apiResponse.statusCode! >= 200) ||
      apiResponse.statusCode == 500) {
    if (!response.status!) {
      return ResponseModel<T>(
        status: ResponseStatus.responseError,
        response: response,
        error: response.message,
      );
    } else {
      return ResponseModel<T>(
        status: ResponseStatus.success,
        response: response,
      );
    }
  } else {
    return ResponseModel(
      status: ResponseStatus.nullResponse,
      error: apiResponse.data['message'] as String,
    );
  }
}