class Incentivale::Request

Constants

API_ENDPOINT

Attributes

connection[RW]

Public Class Methods

new(client) click to toggle source
# File lib/incentivale/request.rb, line 7
def initialize(client)
  @connection = Faraday.new(url: Client.host) do |builder|
    builder.headers['Authorization'] = Auth.new(client).header
    builder.headers['Content-Type'] = 'application/x-www-form-urlencoded'
    builder.headers['Connection'] = 'Keep-Alive'
    builder.adapter Faraday.default_adapter
  end
end

Public Instance Methods

get(url, params = {}) click to toggle source
# File lib/incentivale/request.rb, line 16
def get(url, params = {})
  Response.new connection.get(request_path(url), params.to_camel_keys)
end
post(url, resource = {}) click to toggle source
# File lib/incentivale/request.rb, line 20
def post(url, resource = {})
  Response.new connection.post(request_path(url), resource_to_post(resource))
end

Private Instance Methods

request_path(url) click to toggle source
# File lib/incentivale/request.rb, line 34
def request_path(url)
  API_ENDPOINT + url
end
resource_to_post(resource) click to toggle source
# File lib/incentivale/request.rb, line 26
def resource_to_post(resource)
  URI.encode_www_form(serialize_resource_keys(resource))
end
serialize_resource_keys(hash) click to toggle source
# File lib/incentivale/request.rb, line 30
def serialize_resource_keys(hash)
  hash.to_snake_keys.to_camel_keys.map { |k, v| [k.to_s,v] }
end