parseResponse method

Response parseResponse(
  1. String body,
  2. int status
)

Mapping and cast HTTP response

@param body @param status @return

Implementation

Response parseResponse(String body, int status) {
  final response = Response.fromJson(body);
  response.setStatus(status);

  switch (status) {
    case 200:
      return SuccessResponse().fromResponse(response);

    case 202:
      return PayloadResponse().fromResponse(response);

    case 400:
      return ErrorResponse().fromResponse(response);

    case 401:
    case 403:
      return NoAccessResponse().fromResponse(response);

    case 402:
      return PaymentDeclinedResponse().fromResponse(response);

    case 404:
    case 405:
    case 406:
      return NotFoundResponse().fromResponse(response);

    case 408:
      return TimeoutResponse().fromResponse(response);

    case 412:
    case 418:
      return PreconditionalResponse().fromResponse(response);

    case 422:
      return InputErrorResponse().fromResponse(response);

    case 500:
      return FailureResponse().fromResponse(response);

    default:
      if (status > 500) {
        return NetworkFailureResponse().fromResponse(response);
      } else {
        return response;
      }
  }
}