Files
overleaf-cep/services/web/app/src/Features/Institutions/InstitutionsFeatures.js
T
Jimmy Domagala-Tang 4b1babd4ea Merge pull request #22965 from overleaf/jdt-async-institution-feats
Async await institution features utility

GitOrigin-RevId: ef24a189aab46d065925405a795709c94ff3d0b3
2025-02-04 09:05:29 +00:00

33 lines
986 B
JavaScript

const { callbackifyAll } = require('@overleaf/promise-utils')
const UserGetter = require('../User/UserGetter')
const PlansLocator = require('../Subscription/PlansLocator')
const Settings = require('@overleaf/settings')
async function getInstitutionsFeatures(userId) {
const planCode = await getInstitutionsPlan(userId)
const plan = planCode && PlansLocator.findLocalPlanInSettings(planCode)
const features = plan && plan.features
return features || {}
}
async function getInstitutionsPlan(userId) {
if (await hasLicence(userId)) {
return Settings.institutionPlanCode
}
return null
}
async function hasLicence(userId) {
const emailsData = await UserGetter.promises.getUserFullEmails(userId)
return emailsData.some(emailData => emailData.emailHasInstitutionLicence)
}
const InstitutionsFeatures = {
getInstitutionsFeatures,
getInstitutionsPlan,
hasLicence,
}
module.exports = {
promises: InstitutionsFeatures,
...callbackifyAll(InstitutionsFeatures),
}