Class: HasOffers::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/hasoffers/base.rb

Constant Summary collapse

@@base_uri =
'https://api.hasoffers.com/Api'
@@api_mode =
(defined?(Rails) and Rails.env.production?) or ENV['HAS_OFFERS_LIVE'] == '1') ? :live : :test
@@default_params =
nil

Class Method Summary collapse

Class Method Details

.api_modeObject



47
48
49
# File 'lib/hasoffers/base.rb', line 47

def api_mode
  @@api_mode
end

.api_mode=(mode) ⇒ Object



43
44
45
# File 'lib/hasoffers/base.rb', line 43

def api_mode=(mode)
  @@api_mode = mode
end

.base_uriObject



16
17
18
# File 'lib/hasoffers/base.rb', line 16

def base_uri
  @@base_uri
end

.base_uri=(uri) ⇒ Object



12
13
14
# File 'lib/hasoffers/base.rb', line 12

def base_uri=(uri)
  @@base_uri = uri
end

.get_request(target, method, params) ⇒ Object



51
52
53
# File 'lib/hasoffers/base.rb', line 51

def get_request(target, method, params)
  make_request(:get, target, method, params)
end

.initialize_credentialsObject



20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/hasoffers/base.rb', line 20

def initialize_credentials
  config_file = ENV['HAS_OFFERS_CONFIG_FILE'] || "config/has_offers.yml"
  if File.exists?(config_file)
    config = YAML::load(IO.read(config_file))
    @@default_params = {'Format' => 'json',
                        'Service' => 'HasOffers',
                        'Version' => '2',
                        'NetworkId' => config['network_id'],
                        'NetworkToken' => config['api_key']}
  else
    @@default_params = {}
    puts "Missing config/has_offers.yml file!"
  end
end

.live?Boolean

Returns:

  • (Boolean)


39
40
41
# File 'lib/hasoffers/base.rb', line 39

def live?
  @@api_mode == :live
end

.post_request(target, method, params) ⇒ Object



55
56
57
# File 'lib/hasoffers/base.rb', line 55

def post_request(target, method, params)
  make_request(:post, target, method, params)
end

.requires!(hash, required_params) ⇒ Object



59
60
61
62
63
64
65
66
67
# File 'lib/hasoffers/base.rb', line 59

def requires!(hash, required_params)
  missing_params = []
  required_params.each do |param|
    missing_params.push param unless hash.has_key?(param)
  end
  unless missing_params.empty?
    raise ArgumentError.new("Missing required parameter(s): #{missing_params.join(', ')}")
  end
end

.test?Boolean

Returns:

  • (Boolean)


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

def test?
  @@api_mode == :test
end