Sha256: 49553c16f0069453d80aedbe6f3f206c53c2eaf99d0de9bf930f0b0859cb79b0

Contents?: true

Size: 590 Bytes

Versions: 2

Compression:

Stored size: 590 Bytes

Contents

module Tang
  class ApplyCustomerDiscount
    def self.call(customer, coupon)
      if customer.stripe_id.present?
        begin
          cu = Stripe::Customer.retrieve(customer.stripe_id)
          cu.coupon = coupon.stripe_id
          cu.save

          start = cu.discount.start.to_s
          start_timestamp = DateTime.strptime(start, '%s')
          customer.update(coupon: coupon, coupon_start: start_timestamp)
        rescue Stripe::StripeError => e
          customer.errors.add(:base, :invalid, message: e.message)
        end
      end

      return customer
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

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