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

Version Path
pay-6.8.1 lib/pay/paddle/charge.rb
pay-6.8.0 lib/pay/paddle/charge.rb
pay-6.7.2 lib/pay/paddle/charge.rb
pay-6.7.1 lib/pay/paddle/charge.rb
pay-6.7.0 lib/pay/paddle/charge.rb
pay-6.6.1 lib/pay/paddle/charge.rb
pay-6.6.0 lib/pay/paddle/charge.rb
pay-6.5.0 lib/pay/paddle/charge.rb
pay-6.4.0 lib/pay/paddle/charge.rb
pay-6.3.4 lib/pay/paddle/charge.rb
pay-6.3.3 lib/pay/paddle/charge.rb
pay-6.3.2 lib/pay/paddle/charge.rb
pay-6.3.1 lib/pay/paddle/charge.rb
pay-6.3.0 lib/pay/paddle/charge.rb
pay-6.2.4 lib/pay/paddle/charge.rb
pay-6.2.3 lib/pay/paddle/charge.rb
pay-6.2.2 lib/pay/paddle/charge.rb
pay-6.2.1 lib/pay/paddle/charge.rb
pay-6.2.0 lib/pay/paddle/charge.rb
pay-6.1.2 lib/pay/paddle/charge.rb