Files
overleaf-cep/services/web/app/src/Features/Institutions/InstitutionsFeatures.js
T
Eric Mc Sween 6a6264f970 Merge pull request #5087 from overleaf/em-promisify-subscription-updater
Promisify FeaturesUpdater and SubscriptionHandler

GitOrigin-RevId: 1a9725afa119c0eaee3d975a11197b6f702f1307
2021-09-21 08:03:10 +00:00

50 lines
1.3 KiB
JavaScript

let InstitutionsFeatures
const UserGetter = require('../User/UserGetter')
const PlansLocator = require('../Subscription/PlansLocator')
const Settings = require('@overleaf/settings')
const { promisifyAll } = require('../../util/promises')
module.exports = InstitutionsFeatures = {
getInstitutionsFeatures(userId, callback) {
InstitutionsFeatures.getInstitutionsPlan(
userId,
function (error, planCode) {
if (error) {
return callback(error)
}
const plan = planCode && PlansLocator.findLocalPlanInSettings(planCode)
const features = plan && plan.features
callback(null, features || {})
}
)
},
getInstitutionsPlan(userId, callback) {
InstitutionsFeatures.hasLicence(userId, function (error, hasLicence) {
if (error) {
return callback(error)
}
if (!hasLicence) {
return callback(null, null)
}
callback(null, Settings.institutionPlanCode)
})
},
hasLicence(userId, callback) {
UserGetter.getUserFullEmails(userId, function (error, emailsData) {
if (error) {
return callback(error)
}
const hasLicence = emailsData.some(
emailData => emailData.emailHasInstitutionLicence
)
callback(null, hasLicence)
})
},
}
module.exports.promises = promisifyAll(module.exports)