Class: Pay::Braintree::Charge
- Inherits:
-
Charge
- Object
- Charge
- Pay::Braintree::Charge
- Defined in:
- app/models/pay/braintree/charge.rb
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.sync(charge_id, object: nil, try: 0, retries: 1) ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
# File 'app/models/pay/braintree/charge.rb', line 4 def self.sync(charge_id, object: nil, try: 0, retries: 1) object ||= Pay.braintree_gateway.transaction.find(charge_id) pay_customer = Pay::Customer.find_by(processor: :braintree, processor_id: object.customer_details.id) return unless pay_customer pay_customer.save_transaction(object) rescue ActiveRecord::RecordInvalid, ActiveRecord::RecordNotUnique try += 1 if try <= retries sleep 0.1 retry else raise end end |
Instance Method Details
#api_record ⇒ Object
21 22 23 24 25 |
# File 'app/models/pay/braintree/charge.rb', line 21 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
27 28 29 30 31 32 33 |
# File 'app/models/pay/braintree/charge.rb', line 27 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 |