module FoxyCart
Constants
- VERSION
Attributes
api_key[RW]
Public Class Methods
api_url(url='')
click to toggle source
# File lib/foxycart.rb, line 26 def self.api_url(url='') @api_base + url end
request(method, url, api_key, params={}, headers={})
click to toggle source
# File lib/foxycart.rb, line 37 def self.request(method, url, api_key, params={}, headers={}) unless api_key ||= @api_key raise AuthenticationError.new('No API key provided. ' + 'Set your API key using "FoxyCart.api_key = <API-KEY>".') end url = api_url(url) case method.to_s.downcase.to_sym when :get, :head, :delete # Make params into GET parameters url += "#{URI.parse(url).query ? '&' : '?'}#{uri_encode(params)}" if params && params.any? payload = nil else payload = uri_encode(params) end # post(url, data: post_data, headers: FoxyCart.headers) request_opts = { :headers => request_headers(api_key).update(headers), :method => method, :open_timeout => 30, :payload => payload, :url => url, :timeout => 80 } execute_request(request_opts) end
request_headers(api_key)
click to toggle source
# File lib/foxycart.rb, line 30 def self.request_headers(api_key) { 'FOXYCART-API-VERSION' => '1', 'Authorization' => "Bearer #{api_key}", } end
Private Class Methods
execute_request(opts)
click to toggle source
# File lib/foxycart.rb, line 74 def self.execute_request(opts) RestClient::Request.execute(opts) end
uri_encode(params)
click to toggle source
# File lib/foxycart.rb, line 69 def self.uri_encode(params) Util.flatten_params(params). map { |k,v| "#{k}=#{Util.url_encode(v)}" }.join('&') end