class Smartpay::Requests::Payment

Constants

REQUIREMENT_KEY_NAME

Attributes

payload[RW]

Public Class Methods

new(raw_payload) click to toggle source
# File lib/smartpay/requests/payment.rb, line 10
def initialize(raw_payload)
  @payload = raw_payload.transform_keys(&:to_sym)
end

Public Instance Methods

as_hash() click to toggle source
# File lib/smartpay/requests/payment.rb, line 14
def as_hash
  check_requirement!
  normalize_payload
end

Private Instance Methods

check_requirement!() click to toggle source
# File lib/smartpay/requests/payment.rb, line 21
def check_requirement!
  REQUIREMENT_KEY_NAME.each do |key_name|
    raise Errors::InvalidRequestPayloadError, key_name unless payload.include?(key_name)
  end
end
normalize_payload() click to toggle source
# File lib/smartpay/requests/payment.rb, line 27
def normalize_payload
  {
    order: payload.dig(:order),
    amount: payload.dig(:amount),
    currency: payload.dig(:currency),
    reference: payload.dig(:reference),
    cancelRemainder: payload.dig(:cancel_remainder),
    description: payload.dig(:description),
    metadata: payload.dig(:metadata) || {},
  }
end