Merge pull request #23263 from overleaf/ii-flexible-licensing-subscription-group-handler
[web] FL check subscription existence GitOrigin-RevId: b564d681245137955a8f1e7367b9bd1a6b404268
This commit is contained in:
@@ -123,9 +123,10 @@ async function _removeUserFromGroup(
|
||||
*/
|
||||
async function addSeatsToGroupSubscription(req, res) {
|
||||
try {
|
||||
const userId = SessionManager.getLoggedInUserId(req.session)
|
||||
const { subscription, plan } =
|
||||
await SubscriptionGroupHandler.promises.getUsersGroupSubscriptionDetails(
|
||||
req
|
||||
userId
|
||||
)
|
||||
await SubscriptionGroupHandler.promises.ensureFlexibleLicensingEnabled(plan)
|
||||
|
||||
@@ -151,9 +152,11 @@ async function addSeatsToGroupSubscription(req, res) {
|
||||
*/
|
||||
async function previewAddSeatsSubscriptionChange(req, res) {
|
||||
try {
|
||||
const userId = SessionManager.getLoggedInUserId(req.session)
|
||||
const preview =
|
||||
await SubscriptionGroupHandler.promises.previewAddSeatsSubscriptionChange(
|
||||
req
|
||||
userId,
|
||||
req.body.adding
|
||||
)
|
||||
|
||||
res.json(preview)
|
||||
@@ -173,9 +176,11 @@ async function previewAddSeatsSubscriptionChange(req, res) {
|
||||
*/
|
||||
async function createAddSeatsSubscriptionChange(req, res) {
|
||||
try {
|
||||
const userId = SessionManager.getLoggedInUserId(req.session)
|
||||
const create =
|
||||
await SubscriptionGroupHandler.promises.createAddSeatsSubscriptionChange(
|
||||
req
|
||||
userId,
|
||||
req.body.adding
|
||||
)
|
||||
|
||||
res.json(create)
|
||||
|
||||
@@ -3,7 +3,6 @@ const SubscriptionUpdater = require('./SubscriptionUpdater')
|
||||
const SubscriptionLocator = require('./SubscriptionLocator')
|
||||
const SubscriptionController = require('./SubscriptionController')
|
||||
const { Subscription } = require('../../models/Subscription')
|
||||
const SessionManager = require('../Authentication/SessionManager')
|
||||
const RecurlyClient = require('./RecurlyClient')
|
||||
const PlansLocator = require('./PlansLocator')
|
||||
const SubscriptionHandler = require('./SubscriptionHandler')
|
||||
@@ -63,11 +62,14 @@ async function ensureFlexibleLicensingEnabled(plan) {
|
||||
}
|
||||
}
|
||||
|
||||
async function getUsersGroupSubscriptionDetails(req) {
|
||||
const userId = SessionManager.getLoggedInUserId(req.session)
|
||||
async function getUsersGroupSubscriptionDetails(userId) {
|
||||
const subscription =
|
||||
await SubscriptionLocator.promises.getUsersSubscription(userId)
|
||||
|
||||
if (!subscription) {
|
||||
throw new Error('No subscription was found')
|
||||
}
|
||||
|
||||
if (!subscription.groupPlan) {
|
||||
throw new Error('User subscription is not a group plan')
|
||||
}
|
||||
@@ -85,12 +87,10 @@ async function getUsersGroupSubscriptionDetails(req) {
|
||||
}
|
||||
}
|
||||
|
||||
async function _addSeatsSubscriptionChange(req) {
|
||||
const adding = req.body.adding
|
||||
async function _addSeatsSubscriptionChange(userId, adding) {
|
||||
const { recurlySubscription, plan } =
|
||||
await getUsersGroupSubscriptionDetails(req)
|
||||
await getUsersGroupSubscriptionDetails(userId)
|
||||
await ensureFlexibleLicensingEnabled(plan)
|
||||
const userId = SessionManager.getLoggedInUserId(req.session)
|
||||
const currentAddonQuantity =
|
||||
recurlySubscription.addOns.find(
|
||||
addOn => addOn.code === MEMBERS_LIMIT_ADD_ON_CODE
|
||||
@@ -135,15 +135,14 @@ async function _addSeatsSubscriptionChange(req) {
|
||||
|
||||
return {
|
||||
changeRequest,
|
||||
userId,
|
||||
currentAddonQuantity,
|
||||
recurlySubscription,
|
||||
}
|
||||
}
|
||||
|
||||
async function previewAddSeatsSubscriptionChange(req) {
|
||||
const { changeRequest, userId, currentAddonQuantity } =
|
||||
await _addSeatsSubscriptionChange(req)
|
||||
async function previewAddSeatsSubscriptionChange(userId, adding) {
|
||||
const { changeRequest, currentAddonQuantity } =
|
||||
await _addSeatsSubscriptionChange(userId, adding)
|
||||
const paymentMethod = await RecurlyClient.promises.getPaymentMethod(userId)
|
||||
const subscriptionChange =
|
||||
await RecurlyClient.promises.previewSubscriptionChange(changeRequest)
|
||||
@@ -166,16 +165,16 @@ async function previewAddSeatsSubscriptionChange(req) {
|
||||
return subscriptionChangePreview
|
||||
}
|
||||
|
||||
async function createAddSeatsSubscriptionChange(req) {
|
||||
const { changeRequest, userId, recurlySubscription } =
|
||||
await _addSeatsSubscriptionChange(req)
|
||||
async function createAddSeatsSubscriptionChange(userId, adding) {
|
||||
const { changeRequest, recurlySubscription } =
|
||||
await _addSeatsSubscriptionChange(userId, adding)
|
||||
await RecurlyClient.promises.applySubscriptionChangeRequest(changeRequest)
|
||||
await SubscriptionHandler.promises.syncSubscription(
|
||||
{ uuid: recurlySubscription.id },
|
||||
userId
|
||||
)
|
||||
|
||||
return { adding: req.body.adding }
|
||||
return { adding }
|
||||
}
|
||||
|
||||
async function _getUpgradeTargetPlanCodeMaybeThrow(subscription) {
|
||||
|
||||
Reference in New Issue
Block a user