Class: Smartpay::Requests::Coupon
- Inherits:
-
Object
- Object
- Smartpay::Requests::Coupon
- Includes:
- Validator
- Defined in:
- lib/smartpay/requests/coupon.rb
Overview
Coupon
Constant Summary collapse
- REQUIREMENT_KEY_NAME =
%i[discountType name].freeze
- AVAILABLE_DISCOUNT_TYPES =
%w[percentage amount].freeze
Instance Attribute Summary collapse
-
#payload ⇒ Object
Returns the value of attribute payload.
Instance Method Summary collapse
- #as_hash ⇒ Object
-
#initialize(raw_payload) ⇒ Coupon
constructor
A new instance of Coupon.
Constructor Details
#initialize(raw_payload) ⇒ Coupon
Returns a new instance of Coupon.
14 15 16 |
# File 'lib/smartpay/requests/coupon.rb', line 14 def initialize(raw_payload) @payload = raw_payload.transform_keys(&:to_sym) end |
Instance Attribute Details
#payload ⇒ Object
Returns the value of attribute payload.
9 10 11 |
# File 'lib/smartpay/requests/coupon.rb', line 9 def payload @payload end |
Instance Method Details
#as_hash ⇒ Object
18 19 20 21 22 23 24 25 |
# File 'lib/smartpay/requests/coupon.rb', line 18 def as_hash check_requirement!(REQUIREMENT_KEY_NAME) raise Errors::InvalidRequestPayloadError, :discountType unless AVAILABLE_DISCOUNT_TYPES.include?(payload[:discountType]) raise Errors::InvalidRequestPayloadError, :discountPercentage if payload[:discountType] == "percentage" && !payload[:discountPercentage] raise Errors::InvalidRequestPayloadError, :discountAmount if payload[:discountType] == "amount" && !payload[:discountAmount] normalize_payload end |