Module: FoxyCart

Defined in:
lib/foxycart.rb,
lib/foxycart/util.rb,
lib/foxycart/store.rb,
lib/foxycart/version.rb,
lib/foxycart/api_operations/create.rb,
lib/foxycart/errors/foxycart_error.rb,
lib/foxycart/errors/authentication_error.rb

Defined Under Namespace

Modules: APIOperations Classes: AuthenticationError, FoxyCartError, Store, Util

Constant Summary collapse

VERSION =
'0.0.1'

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.api_keyObject

Returns the value of attribute api_key.



23
24
25
# File 'lib/foxycart.rb', line 23

def api_key
  @api_key
end

Class Method Details

.api_url(url = '') ⇒ Object



26
27
28
# File 'lib/foxycart.rb', line 26

def self.api_url(url='')
  @api_base + url
end

.request(method, url, api_key, params = {}, headers = {}) ⇒ Object



37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# 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) ⇒ Object



30
31
32
33
34
35
# File 'lib/foxycart.rb', line 30

def self.request_headers(api_key)
  {
    'FOXYCART-API-VERSION' => '1', 
    'Authorization' => "Bearer #{api_key}",
  }
end