Class: HasOffersV3::Base
- Inherits:
-
Object
show all
- Defined in:
- lib/hasoffersv3/base.rb
Direct Known Subclasses
Advertiser, AdvertiserBilling, AdvertiserUser, Affiliate, AffiliateBilling, AffiliateOffer, Application, Conversion, Employee, Offer, OfferPixel, RawLog, Report
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
#initialize(client = HasOffersV3.client) ⇒ Base
Returns a new instance of Base.
6
7
8
|
# File 'lib/hasoffersv3/base.rb', line 6
def initialize(client = HasOffersV3.client)
@client = client
end
|
Class Method Details
.method_missing(meth, *args, &block) ⇒ Object
19
20
21
|
# File 'lib/hasoffersv3/base.rb', line 19
def method_missing(meth, *args, &block)
new(client).send(meth, *args, &block)
end
|
.target ⇒ Object
11
12
13
|
# File 'lib/hasoffersv3/base.rb', line 11
def target
name.split('::').last
end
|
Instance Method Details
#client ⇒ Object
70
71
72
|
# File 'lib/hasoffersv3/base.rb', line 70
def client
@client
end
|
#get_request(method, params = {}, &block) ⇒ Object
30
31
32
33
34
35
36
37
38
39
40
41
|
# File 'lib/hasoffersv3/base.rb', line 30
def get_request(method, params = {}, &block)
if block.nil?
make_request(:get, method, params)
else
page = 1
begin
response = make_request(:get, method, params.merge(page: page))
block.call response
page += 1
end until page > (response.page_info['page_count'] || 1)
end
end
|
#make_request(http_method, method, params) ⇒ Object
74
75
76
|
# File 'lib/hasoffersv3/base.rb', line 74
def make_request(http_method, method, params)
@client.request(http_method, target, method, params)
end
|
#post_request(method, params = {}, &block) ⇒ Object
43
44
45
46
47
48
49
50
51
52
53
54
|
# File 'lib/hasoffersv3/base.rb', line 43
def post_request(method, params = {}, &block)
if block.nil?
make_request(:post, method, params)
else
page = 1
begin
response = make_request(:post, method, params.merge(page: page))
block.call response
page += 1
end until page > (response.page_info['page_count'] || 1)
end
end
|
#requires!(hash, required_params) ⇒ Object
56
57
58
59
60
61
62
63
64
|
# File 'lib/hasoffersv3/base.rb', line 56
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
|
#target ⇒ Object
66
67
68
|
# File 'lib/hasoffersv3/base.rb', line 66
def target
self.class.target
end
|