module UniOne::Connection

Public Instance Methods

get(url, params) click to toggle source
# File lib/unione/connection.rb, line 9
def get(url, params)
  prepare_params!(params)

  # Assume HTTP library receives params as Hash
  request(:get, url, params)
end
post(url, params) click to toggle source
# File lib/unione/connection.rb, line 16
def post(url, params)
  prepare_params!(params)

  # Assume HTTP library receives payload body as String
  request(:post, url, JSON.dump(params))
end

Private Instance Methods

add_version(path) click to toggle source
# File lib/unione/connection.rb, line 54
def add_version(path)
  "#{path}?platform=unione_ruby_#{UniOne::VERSION}"
end
conn() click to toggle source
# File lib/unione/connection.rb, line 30
def conn
  headers = {'Content-Type' => 'application/json'}
  prepare_headers!(headers)

  @conn ||= Faraday.new(
    url: api_endpoint,
    headers: headers,
    request: { timeout: 30 }
  ) do |conn|
    conn.response :mashify, content_type: /\bjson$/
    conn.response :json, content_type: /\bjson$/
    conn.response :raise_error
    conn.adapter :net_http_persistent
  end
end
prepare_headers!(headers) click to toggle source
# File lib/unione/connection.rb, line 50
def prepare_headers!(headers)
  headers.merge!('X-API-KEY' => @api_key) unless @api_key_in_params
end
prepare_params!(params) click to toggle source
# File lib/unione/connection.rb, line 46
def prepare_params!(params)
  params.merge!({api_key: @api_key}) if @api_key_in_params
end
request(method, path, data) click to toggle source
# File lib/unione/connection.rb, line 25
def request(method, path, data)
  path = add_version(path)
  @last_response = conn.send(method, path, data)
end