Implement checks for user eligibility when switching plans (#24276)

* Convert updateSubscription controller to async/await

* Move updateSubscription to subscription module

* Validate if user is eligible to change plan

GitOrigin-RevId: ce538429cd5a3b93acabdc046f1a8b164ac02301
This commit is contained in:
Thomas Mees
2025-03-14 09:05:19 +00:00
committed by Copybot
parent e6371ec197
commit 84996ea88c
6 changed files with 36 additions and 63 deletions
@@ -458,30 +458,6 @@ async function previewSubscription(req, res, next) {
res.render('subscriptions/preview-change', { changePreview })
}
function updateSubscription(req, res, next) {
const origin = req && req.query ? req.query.origin : null
const user = SessionManager.getSessionUser(req.session)
const planCode = req.body.plan_code
if (planCode == null) {
const err = new Error('plan_code is not defined')
logger.warn(
{ userId: user._id, err, planCode, origin, body: req.body },
'[Subscription] error in updateSubscription form'
)
return next(err)
}
logger.debug({ planCode, userId: user._id }, 'updating subscription')
SubscriptionHandler.updateSubscription(user, planCode, null, function (err) {
if (err) {
OError.tag(err, 'something went wrong updating subscription', {
user_id: user._id,
})
return next(err)
}
res.redirect('/user/subscription')
})
}
function cancelPendingSubscriptionChange(req, res, next) {
const user = SessionManager.getSessionUser(req.session)
logger.debug({ userId: user._id }, 'canceling pending subscription change')
@@ -799,7 +775,6 @@ module.exports = {
canceledSubscription: expressify(canceledSubscription),
cancelV1Subscription,
previewSubscription: expressify(previewSubscription),
updateSubscription,
cancelPendingSubscriptionChange,
updateAccountEmailAddress,
reactivateSubscription,