Files
fizzy/saas/app/controllers/account/subscriptions/upgrades_controller.rb
T
2025-12-18 10:04:15 +01:00

29 lines
889 B
Ruby

class Account::Subscriptions::UpgradesController < ApplicationController
before_action :ensure_admin
def create
portal_session = Stripe::BillingPortal::Session.create(
customer: subscription.stripe_customer_id,
return_url: account_settings_url(anchor: "subscription"),
flow_data: {
type: "subscription_update_confirm",
subscription_update_confirm: {
subscription: subscription.stripe_subscription_id,
items: [ { id: stripe_subscription_item_id, price: Plan.paid_with_extra_storage.stripe_price_id } ]
}
}
)
redirect_to portal_session.url, allow_other_host: true
end
private
def subscription
@subscription ||= Current.account.subscription
end
def stripe_subscription_item_id
Stripe::Subscription.retrieve(subscription.stripe_subscription_id).items.data.first.id
end
end