Class: Redemption::RedeemAsVoucher
- Inherits:
-
Object
- Object
- Redemption::RedeemAsVoucher
- Defined in:
- lib/redemption/redeem_as_voucher.rb
Instance Attribute Summary collapse
-
#currency ⇒ Object
Returns the value of attribute currency.
-
#points_country ⇒ Object
Returns the value of attribute points_country.
-
#redeemed_points ⇒ Object
Returns the value of attribute redeemed_points.
-
#user ⇒ Object
Returns the value of attribute user.
Instance Method Summary collapse
- #error_messages ⇒ Object (also: #error_message_simple)
- #execute ⇒ Object
- #execute! ⇒ Object
-
#initialize(args) ⇒ RedeemAsVoucher
constructor
A new instance of RedeemAsVoucher.
Constructor Details
#initialize(args) ⇒ RedeemAsVoucher
Returns a new instance of RedeemAsVoucher.
9 10 11 12 13 14 15 16 17 18 |
# File 'lib/redemption/redeem_as_voucher.rb', line 9 def initialize(args) @user = args[:user] @redeemed_points = args[:redeemed_points] @reward = Reward.new # set default country code to THA, if not provided points_country_code = args[:points_country_code].presence || ApiV5::Constants::COUNTRY_CODE_TH @points_country = Country.find_by(alpha3: points_country_code) @currency = @points_country&.currency_code_upcase end |
Instance Attribute Details
#currency ⇒ Object
Returns the value of attribute currency.
7 8 9 |
# File 'lib/redemption/redeem_as_voucher.rb', line 7 def currency @currency end |
#points_country ⇒ Object
Returns the value of attribute points_country.
7 8 9 |
# File 'lib/redemption/redeem_as_voucher.rb', line 7 def points_country @points_country end |
#redeemed_points ⇒ Object
Returns the value of attribute redeemed_points.
7 8 9 |
# File 'lib/redemption/redeem_as_voucher.rb', line 7 def redeemed_points @redeemed_points end |
#user ⇒ Object
Returns the value of attribute user.
7 8 9 |
# File 'lib/redemption/redeem_as_voucher.rb', line 7 def user @user end |
Instance Method Details
#error_messages ⇒ Object Also known as: error_message_simple
41 42 43 |
# File 'lib/redemption/redeem_as_voucher.rb', line 41 def reward.errors..to_sentence end |
#execute ⇒ Object
34 35 36 37 38 39 |
# File 'lib/redemption/redeem_as_voucher.rb', line 34 def execute execute! rescue Redemption::RedeemError => e reward.errors.add(:base, e.) false end |
#execute! ⇒ Object
20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/redemption/redeem_as_voucher.rb', line 20 def execute! validate! success = false Reward.transaction do redeem! create_voucher! send_notification success = true end raise(Redemption::RedeemError, 'Something went wrong') unless success true end |