Class: Voucherify::Service::Redemptions

Inherits:
Object
  • Object
show all
Defined in:
lib/voucherify/service/redemptions.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(client) ⇒ Redemptions

Returns a new instance of Redemptions.



8
9
10
# File 'lib/voucherify/service/redemptions.rb', line 8

def initialize(client)
  @client = client
end

Instance Attribute Details

#clientObject (readonly)

Returns the value of attribute client.



6
7
8
# File 'lib/voucherify/service/redemptions.rb', line 6

def client
  @client
end

Instance Method Details

#get_for_voucher(code) ⇒ Object



25
26
27
# File 'lib/voucherify/service/redemptions.rb', line 25

def get_for_voucher(code)
  @client.get("/vouchers/#{URI.encode(code)}/redemption")
end

#get_redemption(redemption_id) ⇒ Object



37
38
39
# File 'lib/voucherify/service/redemptions.rb', line 37

def get_redemption(redemption_id)
  @client.get("/redemptions/#{URI.encode(redemption_id)}")
end

#list(query = {}) ⇒ Object



21
22
23
# File 'lib/voucherify/service/redemptions.rb', line 21

def list(query = {})
  @client.get('/redemptions', query)
end

#redeem(code, params = {}) ⇒ Object



12
13
14
15
16
17
18
19
# File 'lib/voucherify/service/redemptions.rb', line 12

def redeem(code, params = {})
  if code.is_a? Hash
    endpoint = "/promotions/tiers/#{URI.encode(code[:id] || code['id'])}/redemption"
  else
    endpoint = "/vouchers/#{URI.encode(code)}/redemption"
  end
  @client.post(endpoint, params.to_json)
end

#rollback(redemption_id, payload = {}) ⇒ Object



29
30
31
32
33
34
35
# File 'lib/voucherify/service/redemptions.rb', line 29

def rollback(redemption_id, payload = {})
  reason = payload['reason'] || payload[:reason]
  params = reason ? {:reason => reason} : {}
  payload.delete 'reason'
  payload.delete :reason
  @client.post("/redemptions/#{URI.encode(redemption_id)}/rollback", payload.to_json, params)
end