Module: GifterHub

Defined in:
lib/gifter_hub.rb,
lib/gifter_hub/util.rb,
lib/gifter_hub/version.rb,
lib/gifter_hub/gift_card.rb,
lib/gifter_hub/api_resource.rb,
lib/gifter_hub/operations/get.rb,
lib/gifter_hub/errors/api_error.rb,
lib/gifter_hub/operations/create.rb,
lib/gifter_hub/errors/gifter_hub_error.rb,
lib/gifter_hub/errors/api_connection_error.rb

Defined Under Namespace

Modules: Errors, Operations, Util Classes: ApiResource, GiftCard

Constant Summary collapse

VERSION =
"0.1.7"

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.api_baseObject

Returns the value of attribute api_base.



20
21
22
# File 'lib/gifter_hub.rb', line 20

def api_base
  @api_base
end

.api_versionObject

Returns the value of attribute api_version.



20
21
22
# File 'lib/gifter_hub.rb', line 20

def api_version
  @api_version
end

.company_tokenObject

Returns the value of attribute company_token.



20
21
22
# File 'lib/gifter_hub.rb', line 20

def company_token
  @company_token
end

Class Method Details

.api_url(url = '', api_base_url = nil) ⇒ Object



35
36
37
# File 'lib/gifter_hub.rb', line 35

def self.api_url(url='', api_base_url=nil)
  (api_base_url || @api_base) + url
end

.environment=(env) ⇒ Object

change base url based on env



27
28
29
30
31
32
# File 'lib/gifter_hub.rb', line 27

def environment=(env)
  @environment = env
  if env != 'production'
    @api_base = 'https://gifter.openfan.net/api'
  end
end

.execute_request(opts) ⇒ Object



67
68
69
# File 'lib/gifter_hub.rb', line 67

def self.execute_request(opts)
  RestClient::Request.execute(opts)
end

.request(method, url, params, opts, api_base_url = nil) ⇒ Object



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/gifter_hub.rb', line 39

def self.request(method, url, params, opts, api_base_url=nil)
  api_base_url = api_base_url || @api_base
  request_opts = {}
  url = api_url(url, api_base_url)

  headers = {
    'Access-Token' => company_token
  }

  case method.to_s.downcase.to_sym
  when :get, :head, :delete
    # Make params into GET parameters
    url += "#{URI.parse(url).query ? '&' : '?'}#{Util.encode_parameters(params)}" if params && params.any?
    payload = nil
  else
    payload = params
  end

  request_opts.update(method: method,
                      headers: headers,
                      payload: payload,
                      url: url)

  response = execute_request(request_opts)

  JSON.parse(response.body)
end