class Greyatom::API

Constants

API_ROOT
URL

Attributes

conn[R]

Public Class Methods

new() click to toggle source
# File lib/greyatom/api.rb, line 10
def initialize()
  @conn = Faraday.new(url: URL) do |faraday|
    faraday.adapter Faraday.default_adapter
  end
end

Public Instance Methods

get(url, options = {}) click to toggle source
# File lib/greyatom/api.rb, line 16
def get(url, options = {})
  request :get, url, options
end
post(url, options = {}) click to toggle source
# File lib/greyatom/api.rb, line 20
def post(url, options = {})
  request :post, url, options
end

Private Instance Methods

buildBody(request, body) click to toggle source
# File lib/greyatom/api.rb, line 60
def buildBody(request, body)
  if body
    request.body = Oj.dump(body, mode: :compat)
  end
end
buildHeaders(request, headers) click to toggle source
# File lib/greyatom/api.rb, line 44
def buildHeaders(request, headers)
  if headers
    headers.each do |header, value|
      request.headers[header] = value
    end
  end
end
buildParams(request, params) click to toggle source
# File lib/greyatom/api.rb, line 52
def buildParams(request, params)
  if params
    params.each do |param, value|
      request.params[param] = value
    end
  end
end
buildRequest(request, options) click to toggle source
# File lib/greyatom/api.rb, line 38
def buildRequest(request, options)
  buildHeaders(request, options[:headers])
  buildParams(request, options[:params])
  buildBody(request, options[:body])
end
request(method, url, options = {}) click to toggle source
# File lib/greyatom/api.rb, line 26
def request(method, url, options = {})
  begin
    connection = options[:client] || @conn
    connection.send(method) do |req|
      req.url url
      buildRequest(req, options)
    end
  rescue Faraday::ConnectionFailed
    puts "Connection error. Please try again."
  end
end