[web] add support for previewing base plan changes for Stripe (#25619)

GitOrigin-RevId: 458eeac52bc5fc010b9749f6fcd48350aa792582
This commit is contained in:
Kristina
2025-05-20 08:05:31 +00:00
committed by Copybot
parent ecdd0c54bd
commit dbb528762e
2 changed files with 12 additions and 7 deletions
@@ -468,6 +468,7 @@ async function previewSubscription(req, res, next) {
if (!planCode) {
return HttpErrorHandler.notFound(req, res, 'Missing plan code')
}
// TODO: use PaymentService to fetch plan information
const plan = await RecurlyClient.promises.getPlan(planCode)
const userId = SessionManager.getLoggedInUserId(req.session)
const subscriptionChange =
@@ -475,14 +476,17 @@ async function previewSubscription(req, res, next) {
userId,
planCode
)
const paymentMethod = await RecurlyClient.promises.getPaymentMethod(userId)
const paymentMethod = await Modules.promises.hooks.fire(
'getPaymentMethod',
userId
)
const changePreview = makeChangePreview(
{
type: 'premium-subscription',
plan: { code: plan.code, name: plan.name },
},
subscriptionChange,
paymentMethod
paymentMethod[0]
)
res.render('subscriptions/preview-change', { changePreview })
@@ -73,11 +73,12 @@ async function createSubscription(user, subscriptionDetails, recurlyTokenIds) {
* @return {Promise<PaymentProviderSubscriptionChange>}
*/
async function previewSubscriptionChange(userId, planCode) {
const subscription = await getSubscriptionForUser(userId)
const changeRequest = subscription?.getRequestForPlanChange(planCode)
const change =
await RecurlyClient.promises.previewSubscriptionChange(changeRequest)
return change
const change = await Modules.promises.hooks.fire(
'previewSubscriptionChange',
userId,
planCode
)
return change[0]
}
/**