Class: Tang::CreateCoupon

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

Class Method Summary collapse

Class Method Details

.call(coupon) ⇒ Object



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