Class: Pay::PaymentMethod

Inherits:
ApplicationRecord show all
Defined in:
app/models/pay/payment_method.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.find_by_processor_and_id(processor, processor_id) ⇒ Object



17
18
19
# File 'app/models/pay/payment_method.rb', line 17

def self.find_by_processor_and_id(processor, processor_id)
  joins(:customer).find_by(processor_id: processor_id, pay_customers: {processor: processor})
end

.pay_processor_for(name) ⇒ Object



21
22
23
# File 'app/models/pay/payment_method.rb', line 21

def self.pay_processor_for(name)
  "Pay::#{name.to_s.classify}::PaymentMethod".constantize
end

Instance Method Details

#make_default!Object



29
30
31
32
33
34
35
36
# File 'app/models/pay/payment_method.rb', line 29

def make_default!
  return if default?

  payment_processor.make_default!

  customer.payment_methods.update_all(default: false)
  update!(default: true)
end

#payment_processorObject



25
26
27
# File 'app/models/pay/payment_method.rb', line 25

def payment_processor
  @payment_processor ||= self.class.pay_processor_for(customer.processor).new(self)
end