Method: Pay::Stripe::Subscription#change_quantity
- Defined in:
- lib/pay/stripe/subscription.rb
#change_quantity(quantity, **options) ⇒ Object
This updates a SubscriptionItem’s quantity in Stripe
For a subscription with a single item, we can update the subscription directly if no SubscriptionItem ID is available Otherwise a SubscriptionItem ID is required so Stripe knows which entry to update
222 223 224 225 226 227 228 229 230 231 232 233 |
# File 'lib/pay/stripe/subscription.rb', line 222 def change_quantity(quantity, **) subscription_item_id = .delete(:subscription_item_id) || subscription_items&.first&.dig("id") if subscription_item_id ::Stripe::SubscriptionItem.update(subscription_item_id, .merge(quantity: quantity), ) @stripe_subscription = nil else @stripe_subscription = ::Stripe::Subscription.update(processor_id, .merge(quantity: quantity).merge(), ) end true rescue ::Stripe::StripeError => e raise Pay::Stripe::Error, e end |