Class: Tang::FailInvoice

Inherits:
Object
  • Object
show all
Defined in:
app/services/tang/fail_invoice.rb

Class Method Summary collapse

Class Method Details

.call(stripe_invoice) ⇒ Object



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.find_by(stripe_id: stripe_invoice.id)
  invoice = Invoice.from_stripe(stripe_invoice)

  # create charge
  charge = nil
  if stripe_invoice.charge.present?
    stripe_charge = Stripe::Charge.retrieve(stripe_invoice.charge)
    charge = Charge.from_stripe(stripe_charge, invoice)
  end

  # update subscription
  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