Sha256: a52f62ebbcf7fa9c766c71da917fa1da4c770318008eafa63f2c28ba546ece93

Contents?: true

Size: 717 Bytes

Versions: 2

Compression:

Stored size: 717 Bytes

Contents

module Tang
  class CreateCoupon
    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
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
tang-0.2.2 app/services/tang/create_coupon.rb
tang-0.2.1 app/services/tang/create_coupon.rb