sale.rb 1.3 KB

1234567891011121314151617181920212223242526272829303132333435
  1. # frozen_string_literal: true
  2. module Paratika
  3. class Sale < Request
  4. attr_reader :amount, :currency, :merchant_payment_id
  5. attr_reader :customer, :customer_name, :customer_email, :customer_phone, :customer_ip
  6. attr_reader :name_on_card, :card_pan, :card_expiry, :card_ccv, :card_token
  7. def initialize(payment, customer, card)
  8. validate_hash(payment)
  9. validate_hash(customer)
  10. validate_hash(card)
  11. @amount = validate_money(payment[:amount])
  12. @currency = validate(payment[:currency], of: CURRENCIES)
  13. @merchant_payment_id = validate_presence(payment[:id]) # payment id
  14. @customer = validate_presence(customer[:id]) #customer id
  15. @customer_name = validate_presence(customer[:name])
  16. @customer_email = validate_presence(customer[:email])
  17. @customer_phone = validate_presence(customer[:phone])
  18. @customer_ip = validate_presence(customer[:ip])
  19. if card[:token].present?
  20. @card_token = validate_presence(card[:token])
  21. else
  22. @name_on_card = validate_presence(card[:name])
  23. @card_pan = validate_presence(card[:number])
  24. @card_expiry = validate_presence(card[:expiry])
  25. @card_ccv = validate_presence(card[:ccv])
  26. @save_card = validate_presence(card[:save])
  27. end
  28. super()
  29. end
  30. end
  31. class PreAuth < Sale
  32. end
  33. end