Class: Tang::UpdateSubscription

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

Class Method Summary collapse

Class Method Details

.call(subscription) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'app/services/tang/update_subscription.rb', line 3

def self.call(subscription)
  if !subscription.valid?
    return subscription
  end

  begin
    s = Stripe::Subscription.retrieve(subscription.stripe_id)
    s.plan = subscription.plan.stripe_id
    s.quantity = subscription.quantity
    s.trial_end = subscription.stripe_trial_end if subscription.stripe_trial_end.present?
    # s.tax_percent = subscription.tax_percent if subscription.tax_percent.present?
    s.coupon = subscription.coupon.stripe_id if subscription.coupon.present?
    s.save
  rescue Stripe::StripeError => e
    subscription.errors.add(:base, :invalid, message: e.message)
  end

  return subscription
end