Sha256: 9015a59007443ad03ccc84b933539fcc5e88e528b0420380a2ab087b16a68b8f

Contents?: true

Size: 722 Bytes

Versions: 2

Compression:

Stored size: 722 Bytes

Contents

module Tang
  class UpdateSubscription
    def self.call(subscription)
      if !subscription.valid?
        return subscription
      end

      begin
        s = Stripe::Subscription.retrieve(subscription.stripe_id)
        s.plan = subscription.plan.stripe_id
        s.quantity = subscription.quantity
        s.trial_end = subscription.stripe_trial_end if subscription.stripe_trial_end.present?
        s.tax_percent = subscription.tax_percent if subscription.tax_percent.present?
        s.coupon = subscription.coupon.stripe_id if subscription.coupon.present?
        s.save
      rescue Stripe::StripeError => e
        subscription.errors[:base] << e.message
      end

      return subscription
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
tang-0.0.9 app/services/tang/update_subscription.rb
tang-0.0.8 app/services/tang/update_subscription.rb