class Zaikio::Client::Helpers::JSONParser
Public Instance Methods
connection_error(env)
click to toggle source
# File lib/zaikio/client/helpers/json_parser.rb, line 15 def connection_error(env) raise Spyke::ConnectionError.new( "Status: #{env.status}, URL: #{env.url}, body: #{env.body}", status: env.status, url: env.url, body: env.body ) end
on_complete(env)
click to toggle source
# File lib/zaikio/client/helpers/json_parser.rb, line 6 def on_complete(env) case env.status when 404 then raise Spyke::ResourceNotFound.new(nil, url: env.url) when 429 then raise Zaikio::RateLimitedError.new(nil, url: env.url) when (200..299), 422 then env.body = parse_body(env.body) else connection_error(env) end end
parse_body(body)
click to toggle source
# File lib/zaikio/client/helpers/json_parser.rb, line 24 def parse_body(body) json = MultiJson.load(body, symbolize_keys: true) { data: json, metadata: {}, errors: json.is_a?(Hash) ? json[:errors] : {} } rescue MultiJson::ParseError { data: {}, metadata: {}, errors: {} } end