class DaFace::Api::Adapters::ExconAdapter

Public Instance Methods

connection() click to toggle source
# File lib/da_face/api/adapters/excon_adapter.rb, line 5
def connection
  Excon.new self.api_path
end
extract_rate_limit_info(headers) click to toggle source
# File lib/da_face/api/adapters/excon_adapter.rb, line 38
def extract_rate_limit_info headers
  if headers.select{|header| header[0] == 'x'}.any?
    {
      :limit => headers['x-ratelimit-limit'],
      :remaining => headers['x-ratelimit-remaining']
    }
  elsif headers.select{|header| header[0] == 'X'}.any?
    {
      :limit => headers['X-RateLimit-Limit'],
      :remaining => headers['X-RateLimit-Remaining']
    }
  else
    {
      :limit => nil,
      :remaining => nil
    }
  end
end
get(path, params={}) click to toggle source
# File lib/da_face/api/adapters/excon_adapter.rb, line 9
def get path, params={}
  response = connection.get :path => "#{path}#{url_params(params)}", :headers => get_headers
  handle_response(response)
end
handle_response(response) click to toggle source
# File lib/da_face/api/adapters/excon_adapter.rb, line 32
def handle_response response
  rate_limit_info = extract_rate_limit_info(response.headers)
  set_rate_limit_status(rate_limit_info[:limit], rate_limit_info[:remaining])
  return parse_body(response.body)
end
parse_body(body) click to toggle source
# File lib/da_face/api/adapters/excon_adapter.rb, line 24
def parse_body body
  if body.empty?
    {}
  else
    JSON.parse(body)
  end
end
post(path, payload) click to toggle source
# File lib/da_face/api/adapters/excon_adapter.rb, line 14
def post path, payload
  response = connection.post :path => path, :body => encode_form(payload), :headers => post_headers
  handle_response(response)
end
put(path, payload) click to toggle source
# File lib/da_face/api/adapters/excon_adapter.rb, line 19
def put path, payload
  response = connection.put :path => "#{path}", :body => encode_form(payload), :headers => post_headers
  handle_response(response)
end