class Pay::Braintree::PaymentMethod

Attributes

pay_payment_method[R]

Public Class Methods

new(pay_payment_method) click to toggle source
# File lib/pay/braintree/payment_method.rb, line 17
def initialize(pay_payment_method)
  @pay_payment_method = pay_payment_method
end
sync(id, object: nil, try: 0, retries: 1) click to toggle source
# File lib/pay/braintree/payment_method.rb, line 8
def self.sync(id, object: nil, try: 0, retries: 1)
  object ||= gateway.payment_method.find(id)

  pay_customer = Pay::Customer.find_by(processor: :braintree, processor_id: object.customer_id)
  return unless pay_customer

  pay_customer.save_payment_method(object, default: object.default?)
end

Public Instance Methods

detach() click to toggle source

Remove payment method

# File lib/pay/braintree/payment_method.rb, line 29
def detach
  result = gateway.payment_method.delete(processor_id)
  raise Pay::Braintree::Error, result unless result.success?
  result.success?
end
make_default!() click to toggle source

Sets payment method as default on Stripe

# File lib/pay/braintree/payment_method.rb, line 22
def make_default!
  result = gateway.customer.update(customer.processor_id, default_payment_method_token: processor_id)
  raise Pay::Braintree::Error, result unless result.success?
  result.success?
end

Private Instance Methods

gateway() click to toggle source
# File lib/pay/braintree/payment_method.rb, line 37
def gateway
  Pay.braintree_gateway
end