class Voucherify::Service::Redemptions

Attributes

client[R]

Public Class Methods

new(client) click to toggle source
# File lib/voucherify/service/redemptions.rb, line 8
def initialize(client)
  @client = client
end

Public Instance Methods

get_for_voucher(code) click to toggle source
# 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) click to toggle source
# 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 = {}) click to toggle source
# File lib/voucherify/service/redemptions.rb, line 21
def list(query = {})
  @client.get('/redemptions', query)
end
redeem(code, params = {}) click to toggle source
# 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 = {}) click to toggle source
# 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