Method: Niftycloud::Request#validate

Defined in:
lib/niftycloud/request.rb

#validate(response) ⇒ Object



63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
# File 'lib/niftycloud/request.rb', line 63

def validate(response)
  error_klass = case response.code
  when 400 then Error::BadRequest
  when 401 then Error::Unauthorized
  when 403 then Error::Forbidden
  when 404 then Error::NotFound
  when 405 then Error::MethodNotAllowed
  when 409 then Error::Conflict
  when 422 then Error::Unprocessable
  when 500 then Error::InternalServerError
  when 502 then Error::BadGateway
  when 503 then Error::ServiceUnavailable
  end

  fail error_klass.new(response) if error_klass

  parsed = response.parsed_response
  parsed.client = self if parsed.respond_to?(:client=)
  parsed.parse_headers!(response.headers) if parsed.respond_to?(:parse_headers!)
  parsed
end