Files
overleaf-cep/services/web/app/src/Features/User/UserPostRegistrationAnalyticsManager.js
Alf Eaton 6cc2db3cdd Merge pull request #17525 from overleaf/ae-upgrade-prettier
Upgrade Prettier to v3

GitOrigin-RevId: 6f1338f196408f3edb4892d5220ad3665ff1a5bc
2024-03-26 09:04:05 +00:00

47 lines
1.2 KiB
JavaScript

const Queues = require('../../infrastructure/Queues')
const UserGetter = require('./UserGetter')
const {
promises: InstitutionsAPIPromises,
} = require('../Institutions/InstitutionsAPI')
const AnalyticsManager = require('../Analytics/AnalyticsManager')
const ONE_DAY_MS = 24 * 60 * 60 * 1000
async function schedulePostRegistrationAnalytics(user) {
await Queues.createScheduledJob(
'post-registration-analytics',
{ data: { userId: user._id } },
ONE_DAY_MS
)
}
async function postRegistrationAnalytics(userId) {
const user = await UserGetter.promises.getUser({ _id: userId }, { email: 1 })
if (!user) {
return
}
await checkAffiliations(userId)
}
async function checkAffiliations(userId) {
const affiliationsData =
await InstitutionsAPIPromises.getUserAffiliations(userId)
const hasCommonsAccountAffiliation = affiliationsData.some(
affiliationData =>
affiliationData.institution && affiliationData.institution.commonsAccount
)
if (hasCommonsAccountAffiliation) {
await AnalyticsManager.setUserPropertyForUser(
userId,
'registered-from-commons-account',
true
)
}
}
module.exports = {
schedulePostRegistrationAnalytics,
postRegistrationAnalytics,
}