Sha256: 64a055e641f21c2fdffebd28a1f2ed3fbd883a6a241c735cf8df6a0c2fcb3a35
Contents?: true
Size: 1.12 KB
Versions: 63
Compression:
Stored size: 1.12 KB
Contents
module Pay module Paddle class Charge attr_reader :pay_charge delegate :processor_id, :customer, to: :pay_charge def initialize(pay_charge) @pay_charge = pay_charge end def charge return unless customer.subscription payments = PaddlePay::Subscription::Payment.list({subscription_id: customer.subscription.processor_id}) charges = payments.select { |p| p[:id].to_s == processor_id } charges.try(:first) rescue ::PaddlePay::PaddlePayError => e raise Pay::Paddle::Error, e end def refund!(amount_to_refund) return unless customer.subscription payments = PaddlePay::Subscription::Payment.list({subscription_id: customer.subscription.processor_id, is_paid: 1}) if payments.count > 0 PaddlePay::Subscription::Payment.refund(payments.last[:id], {amount: amount_to_refund}) pay_charge.update(amount_refunded: amount_to_refund) else raise Error, "Payment not found" end rescue ::PaddlePay::PaddlePayError => e raise Pay::Paddle::Error, e end end end end
Version data entries
63 entries across 63 versions & 1 rubygems