mirror of
https://github.com/yu-i-i/overleaf-cep.git
synced 2026-06-10 22:50:46 +02:00
6a6264f970
Promisify FeaturesUpdater and SubscriptionHandler GitOrigin-RevId: 1a9725afa119c0eaee3d975a11197b6f702f1307
50 lines
1.3 KiB
JavaScript
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)
|