module PayBoutique::Parametrizable

Public Class Methods

new(params) click to toggle source
# File lib/pay_boutique/parametrizable.rb, line 3
def initialize(params)
  @params = params

  filter_params
  verify_params

  __setobj__ @params
end

Public Instance Methods

postback_url() click to toggle source
# File lib/pay_boutique/parametrizable.rb, line 18
def postback_url
  @postback_url || PayBoutique.configuration.send("#{@params.payment_method}_postback_url") ||
    PayBoutique.configuration.postback_url
end

Private Instance Methods

existing_params() click to toggle source
# File lib/pay_boutique/parametrizable.rb, line 43
def existing_params
  @existing_params ||= @params.to_h.keys.compact + PayBoutique.configuration.config.compact.keys
end
filter_params() click to toggle source
# File lib/pay_boutique/parametrizable.rb, line 37
def filter_params
  @params.to_h.each_key do |field|
    @params.delete_field field if !self.class.params.include?(field) && @params[field]
  end
end
time() click to toggle source
# File lib/pay_boutique/parametrizable.rb, line 25
def time
  @time ||= Time.now.utc.strftime('%Y%m%dT%H%M%S+00')
end
verify_params() click to toggle source
# File lib/pay_boutique/parametrizable.rb, line 29
def verify_params
  missed_params = self.class.required_params - (existing_params & self.class.required_params)
  return unless missed_params.any?

  missed_params = missed_params.map(&:inspect).join(', ')
  raise ArgumentError, "wrong arguments, missed: #{missed_params}"
end