3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
# File 'app/services/tang/apply_subscription_discount.rb', line 3
def self.call(subscription, coupon)
begin
sub = Stripe::Subscription.retrieve(subscription.stripe_id)
sub.coupon = coupon.stripe_id
sub.save
if sub.discount.methods.include? 'start'
start = sub.discount.start.to_s
start_timestamp = DateTime.strptime(start, '%s')
else
start_timestamp = Time.now
end
subscription.update(coupon: coupon, coupon_start: start_timestamp)
rescue Stripe::StripeError => e
subscription.errors.add(:base, :invalid, message: e.message)
end
return subscription
end
|