lib/api-client/parser.rb in api-client-1.5.4 vs lib/api-client/parser.rb in api-client-1.6.0
- old
+ new
@@ -3,30 +3,30 @@
# Parse the JSON response.
#
# @param [HTTP] response HTTP object for the request.
# @return [Array] the code and the body parsed.
def self.response(response, remote_object)
+ raise_exception(response.code)
begin
object = JSON.parse(response.body)
object = object[remote_object] if object.key?(remote_object)
object = object[remote_object.pluralize] if object.key?(remote_object.pluralize)
- rescue JSON::ParserError
+ rescue JSON::ParserError, TypeError
object = {}
end
- raise_exception(response.code)
object
end
protected
def self.raise_exception(code)
- case code
- when '401' then raise ApiClient::Exceptions::Unauthorized
- when '403' then raise ApiClient::Exceptions::Forbidden
- when '404' then raise ApiClient::Exceptions::NotFound
- when '500' then raise ApiClient::Exceptions::InternalServerError
- when '502' then raise ApiClient::Exceptions::BadGateway
- when '503' then raise ApiClient::Exceptions::ServiceUnavailable
+ case code.to_i
+ when 401 then raise ApiClient::Exceptions::Unauthorized
+ when 403 then raise ApiClient::Exceptions::Forbidden
+ when 404 then raise ApiClient::Exceptions::NotFound
+ when 500 then raise ApiClient::Exceptions::InternalServerError
+ when 502 then raise ApiClient::Exceptions::BadGateway
+ when 503 then raise ApiClient::Exceptions::ServiceUnavailable
else return
end
end
end
\ No newline at end of file