Class: Pay::Braintree::Charge

Inherits:
Charge
  • Object
show all
Extended by:
Sync
Defined in:
app/models/pay/braintree/charge.rb

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Sync

find_pay_customer, pay_processor, sync_with_retries

Class Method Details

.sync(charge_id, object: nil) ⇒ Object



6
7
8
9
10
11
12
13
# File 'app/models/pay/braintree/charge.rb', line 6

def self.sync(charge_id, object: nil)
  sync_with_retries do
    transaction = object || Pay.braintree_gateway.transaction.find(charge_id)
    return unless (pay_customer = find_pay_customer(transaction.customer_details.id))

    pay_customer.save_transaction(transaction)
  end
end

Instance Method Details

#api_recordObject



15
16
17
18
19
# File 'app/models/pay/braintree/charge.rb', line 15

def api_record
  Pay.braintree_gateway.transaction.find(processor_id)
rescue ::Braintree::Braintree::Error => e
  raise Pay::Braintree::Error, e
end

#refund!(amount_to_refund = nil) ⇒ Object



21
22
23
24
25
26
27
# File 'app/models/pay/braintree/charge.rb', line 21

def refund!(amount_to_refund = nil)
  amount_to_refund ||= amount
  Pay.braintree_gateway.transaction.refund(processor_id, amount_to_refund / 100.0)
  update(amount_refunded: amount_to_refund)
rescue ::Braintree::BraintreeError => e
  raise Pay::Braintree::Error, e
end