Class: Voucherify::Service::Redemptions
- Inherits:
-
Object
- Object
- Voucherify::Service::Redemptions
- Defined in:
- lib/voucherify/service/redemptions.rb
Instance Attribute Summary collapse
-
#client ⇒ Object
readonly
Returns the value of attribute client.
Instance Method Summary collapse
- #get_for_voucher(code) ⇒ Object
- #get_redemption(redemption_id) ⇒ Object
-
#initialize(client) ⇒ Redemptions
constructor
A new instance of Redemptions.
- #list(query = {}) ⇒ Object
- #redeem(code, params = {}) ⇒ Object
- #rollback(redemption_id, payload = {}) ⇒ Object
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
#client ⇒ Object (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/#{ERB::Util.url_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/#{ERB::Util.url_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/#{ERB::Util.url_encode(code[:id] || code['id'])}/redemption" else endpoint = "/vouchers/#{ERB::Util.url_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/#{ERB::Util.url_encode(redemption_id)}/rollback", payload.to_json, params) end |