module Weese::Requests::Requester

Actually making the HTTP request

Public Instance Methods

fetch(wmata_request) click to toggle source

Makes a request to WMATA API & deserializes the response into a Hash

@param [Request] wmata_request Request to send to WMATA API

@raise [WeeseError] If the requests fails in any way

@return [Hash] Hash of response JSON

# File lib/weese/requests.rb, line 63
def fetch(wmata_request)
  request(wmata_request).deserialize
end
request(wmata_request) click to toggle source

Make a request to WMATA API

@param [Request] wmata_request Request to send to WMATA API

@raise [WeeseError] If the requests fails in any way

@return [String] Body of response

# File lib/weese/requests.rb, line 43
def request(wmata_request)
  response = Faraday.get(wmata_request.path) do |request|
    request.params = wmata_request.query
    request.headers['api_key'] = wmata_request.api_key
  end

  return response.body if response.success?

  raise WeeseError, "#{response.status}, #{response.body}"
end