lib/barometer/utils/payload_request.rb
module Barometer
module Utils
class PayloadRequest
def initialize(api)
@api = api
end
def get
response = make_request
output = parse_response(response)
Payload.new(output, api.current_query)
end
private
def make_request
Get.call(api.url, api.params)
end
def parse_response(response)
reader(response).parse(response.content, *api.unwrap_nodes)
end
private
attr_reader :api
def reader(response)
if response.headers.fetch('Content-Type', '').match(/json/)
JsonReader
else
XmlReader
end
end
end
end
end