Sha256: 475d36ff0e6c8d6e75cb56707979d46fec236af3cd0f00e9026e49b106c7b3e2
Contents?: true
Size: 1.05 KB
Versions: 2
Compression:
Stored size: 1.05 KB
Contents
# ApiClient::Parser provides a method to parse the request response. module ApiClient::Parser # 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, TypeError object = {} end object end protected def self.raise_exception(code) 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
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
api-client-1.6.1 | lib/api-client/parser.rb |
api-client-1.6.0 | lib/api-client/parser.rb |