mirror of
https://github.com/yu-i-i/overleaf-cep.git
synced 2026-06-05 15:19:02 +02:00
4b1babd4ea
Async await institution features utility GitOrigin-RevId: ef24a189aab46d065925405a795709c94ff3d0b3
33 lines
986 B
JavaScript
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),
|
|
}
|