3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
# File 'app/services/tang/create_coupon.rb', line 3
def self.call(coupon)
if !coupon.valid?
return coupon
end
begin
Stripe::Coupon.create(
id: coupon.stripe_id,
duration: coupon.duration,
percent_off: coupon.percent_off,
duration_in_months: coupon.duration_in_months,
amount_off: coupon.amount_off,
currency: coupon.currency,
max_redemptions: coupon.max_redemptions,
redeem_by: (coupon.redeem_by.present? ? coupon.redeem_by.to_i : nil)
)
rescue Stripe::StripeError => e
coupon.errors.add(:base, :invalid, message: e.message)
return coupon
end
return coupon
end
|