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.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
|