3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
# File 'app/services/tang/fail_invoice.rb', line 3
def self.call(stripe_invoice)
invoice = Invoice.from_stripe(stripe_invoice)
charge = nil
if stripe_invoice.charge.present?
stripe_charge = Stripe::Charge.retrieve(stripe_invoice.charge)
charge = Charge.from_stripe(stripe_charge, invoice)
end
subscription = Subscription.find_by(stripe_id: stripe_invoice.subscription)
if subscription.nil?
stripe_subscription = Stripe::Subscription.retrieve(stripe_invoice.subscription)
subscription = Subscription.from_stripe(stripe_subscription)
invoice.update(subscription: subscription)
end
if subscription.present?
subscription.fail! if !subscription.past_due?
end
return charge
end
|