Class: Lightrail::SplitTenderValidator

Inherits:
Validator
  • Object
show all
Defined in:
lib/lightrail_stripe/split_tender_validator.rb

Class Method Summary collapse

Class Method Details

.has_lightrail_payment_option?(charge_params) ⇒ Boolean

Returns:

  • (Boolean)


20
21
22
23
24
25
# File 'lib/lightrail_stripe/split_tender_validator.rb', line 20

def self.has_lightrail_payment_option?(charge_params)
  Lightrail::Validator.has_valid_code?(charge_params) ||
      Lightrail::Validator.has_valid_card_id?(charge_params) ||
      Lightrail::Validator.has_valid_contact_id?(charge_params) ||
      Lightrail::Validator.has_valid_shopper_id?(charge_params)
end

.has_stripe_payment_option?(charge_params) ⇒ Boolean

Returns:

  • (Boolean)


16
17
18
# File 'lib/lightrail_stripe/split_tender_validator.rb', line 16

def self.has_stripe_payment_option?(charge_params)
  charge_params.has_key?(:source) || charge_params.has_key?(:customer)
end

.validate_split_tender_charge_params!(split_tender_charge_params) ⇒ Object

Raises:

  • (Lightrail::LightrailArgumentError)


4
5
6
7
8
9
10
11
12
13
14
# File 'lib/lightrail_stripe/split_tender_validator.rb', line 4

def self.validate_split_tender_charge_params! (split_tender_charge_params)
  begin
    return true if ((split_tender_charge_params.is_a? Hash) &&
        Lightrail::Validator.validate_amount!(split_tender_charge_params[:amount]) &&
        Lightrail::Validator.validate_currency!(split_tender_charge_params[:currency]) &&
        (self.has_lightrail_payment_option?(split_tender_charge_params) ||
            self.has_stripe_payment_option?(split_tender_charge_params)))
  rescue Lightrail::LightrailArgumentError
  end
  raise Lightrail::LightrailArgumentError.new("Invalid split_tender_charge_params: #{split_tender_charge_params.inspect}")
end