module Foursquare::Merchant::Requests

Constants

API
OAUTH

Public Instance Methods

get(path, params) click to toggle source
# File lib/foursquare/requests.rb, line 8
def get(path, params)
  request = self.class.get(path, {:query => camelize(params).merge(auth_params)})
  handle_response(request)
end
post(path, params) click to toggle source
# File lib/foursquare/requests.rb, line 13
def post(path, params)
  request = self.class.post(path, {:body => camelize(params).merge(auth_params)})
  handle_response(request)
end

Private Instance Methods

auth_params() click to toggle source
# File lib/foursquare/requests.rb, line 28
def auth_params
  if @consumer.oauth_token
    {:oauth_token => @consumer.oauth_token }
  else
    {:client_id => @consumer.client_id, :client_secret => @consumer.client_secret }
  end
end
camel_case(string, capital=true) click to toggle source
# File lib/foursquare/requests.rb, line 19
def camel_case(string, capital=true)
  elem = capital == true ? string.capitalize : string
  elem.gsub(/(_[a-z])/) { |match| match[1..1].upcase }
end
camelize(params) click to toggle source
# File lib/foursquare/requests.rb, line 24
def camelize(params)
  params.inject({}) { |o, (k, v)| o[camel_case(k.to_s, false)] = v; o}
end
handle_response(request) click to toggle source
# File lib/foursquare/requests.rb, line 36
def handle_response(request)
  response = request.parsed_response
  meta = response['meta']

  if meta['code'] != 200
    type, message = camel_case(meta['errorType']), meta['errorDetail']
    raise Merchant::Errors.new(type, message)
  end

  response['response']
end