Class: GeniusReferrals::BonusesResource

Inherits:
Resource
  • Object
show all
Defined in:
lib/genius_referrals/resources/bonuses.rb

Instance Method Summary collapse

Methods inherited from Resource

#initialize

Constructor Details

This class inherits a constructor from GeniusReferrals::Resource

Instance Method Details

#add_tag(account_slug, bonus_id, tag_slug) ⇒ Object

Attach a tag to a bonus using the live-doc bonus.tag.slug shape.



52
53
54
55
56
# File 'lib/genius_referrals/resources/bonuses.rb', line 52

def add_tag(, bonus_id, tag_slug)
  request('POST',
          "/accounts/#{esc()}/bonuses/#{esc(bonus_id)}/tags",
          json: { 'bonus' => { 'tag' => { 'slug' => tag_slug } } })
end

#checkup(account_slug, **params) ⇒ Object

Simulate bonus eligibility with API query parameters.



20
21
22
# File 'lib/genius_referrals/resources/bonuses.rb', line 20

def checkup(, **params)
  request('GET', "/accounts/#{esc()}/bonuses/checkup", params: params)
end

#create(account_slug, bonus) ⇒ Object

Create a bonus using the bonus wrapper.



10
11
12
# File 'lib/genius_referrals/resources/bonuses.rb', line 10

def create(, bonus)
  request('POST', "/accounts/#{esc()}/bonuses", json: wrapped('bonus', bonus))
end

#delete(account_slug, bonus_id) ⇒ Object

Delete one bonus.



47
48
49
# File 'lib/genius_referrals/resources/bonuses.rb', line 47

def delete(, bonus_id)
  request('DELETE', "/accounts/#{esc()}/bonuses/#{esc(bonus_id)}")
end

#force(account_slug, bonus) ⇒ Object

Create a forced bonus using the bonus wrapper.



15
16
17
# File 'lib/genius_referrals/resources/bonuses.rb', line 15

def force(, bonus)
  request('POST', "/accounts/#{esc()}/bonuses/force", json: wrapped('bonus', bonus))
end

#list(account_slug, page: 1, limit: 10, filter: nil, sort: nil, **filters) ⇒ Object

List bonuses for an account.



4
5
6
7
# File 'lib/genius_referrals/resources/bonuses.rb', line 4

def list(, page: 1, limit: 10, filter: nil, sort: nil, **filters)
  params = compact({ page: page, limit: limit, filter: filter, sort: sort }.merge(filters))
  page('GET', "/accounts/#{esc()}/bonuses", params: params)
end

#patch(account_slug, bonus_id, **fields) ⇒ Object

Patch a bonus with unwrapped partial fields.



42
43
44
# File 'lib/genius_referrals/resources/bonuses.rb', line 42

def patch(, bonus_id, **fields)
  request('PATCH', "/accounts/#{esc()}/bonuses/#{esc(bonus_id)}", json: fields)
end

#remove_tag(account_slug, bonus_id, tag_slug) ⇒ Object

Remove one tag from a bonus.



59
60
61
# File 'lib/genius_referrals/resources/bonuses.rb', line 59

def remove_tag(, bonus_id, tag_slug)
  request('DELETE', "/accounts/#{esc()}/bonuses/#{esc(bonus_id)}/tags/#{esc(tag_slug)}")
end

#retrieve(account_slug, bonus_id) ⇒ Object

Retrieve one bonus.



37
38
39
# File 'lib/genius_referrals/resources/bonuses.rb', line 37

def retrieve(, bonus_id)
  request('GET', "/accounts/#{esc()}/bonuses/#{esc(bonus_id)}")
end

#retrieve_trace(account_slug, trace_id) ⇒ Object

Retrieve one bonus request trace.



32
33
34
# File 'lib/genius_referrals/resources/bonuses.rb', line 32

def retrieve_trace(, trace_id)
  request('GET', "/accounts/#{esc()}/bonuses/traces/#{esc(trace_id)}")
end

#traces(account_slug, page: 1, limit: 10, **params) ⇒ Object

List bonus request traces.



25
26
27
28
29
# File 'lib/genius_referrals/resources/bonuses.rb', line 25

def traces(, page: 1, limit: 10, **params)
  page('GET',
       "/accounts/#{esc()}/bonuses/traces",
       params: compact({ page: page, limit: limit }.merge(params)))
end