class Tankard::Request

Handles making actual requests and checking them for any invalid status codes

@author Matthew Shafer

Public Class Methods

new(api_key) click to toggle source
# File lib/tankard/request.rb, line 11
def initialize(api_key)
  @http = HTTPClient.new
  @api_key = api_key
end

Public Instance Methods

get(route, params = {}) click to toggle source
# File lib/tankard/request.rb, line 16
def get(route, params = {})
  params[:key] = @api_key
  request = @http.get(build_request_url(route), params)
  raise_if_status_not_ok(request.status)
  load_json(request.body)
end

Private Instance Methods

build_request_url(route) click to toggle source
# File lib/tankard/request.rb, line 36
def build_request_url(route)
  Tankard::Configuration::BREWERYDB_URL + route
end
load_json(json_data) click to toggle source
# File lib/tankard/request.rb, line 40
def load_json(json_data)
  MultiJson.load(json_data)
rescue MultiJson::LoadError
  raise Tankard::Error::LoadError
end
raise_if_status_not_ok(status) click to toggle source
# File lib/tankard/request.rb, line 25
def raise_if_status_not_ok(status)
  case status
  when 200
    true
  when 401
    fail Tankard::Error::ApiKeyUnauthorized
  else
    fail Tankard::Error::HttpError
  end
end