mirror of
https://github.com/yu-i-i/overleaf-cep.git
synced 2026-05-27 19:11:56 +02:00
58 lines
1.7 KiB
JavaScript
58 lines
1.7 KiB
JavaScript
const BetaProgramHandler = require('./BetaProgramHandler')
|
|
const OError = require('@overleaf/o-error')
|
|
const UserGetter = require('../User/UserGetter')
|
|
const logger = require('@overleaf/logger')
|
|
const SessionManager = require('../Authentication/SessionManager')
|
|
const SplitTestHandler = require('../SplitTests/SplitTestHandler')
|
|
const { expressify } = require('@overleaf/promise-utils')
|
|
|
|
async function optIn(req, res) {
|
|
const userId = SessionManager.getLoggedInUserId(req.session)
|
|
await BetaProgramHandler.promises.optIn(userId)
|
|
try {
|
|
await SplitTestHandler.promises.sessionMaintenance(req, null)
|
|
} catch (error) {
|
|
logger.error(
|
|
{ err: error },
|
|
'Failed to perform session maintenance after beta program opt in'
|
|
)
|
|
}
|
|
res.redirect('/beta/participate')
|
|
}
|
|
|
|
async function optOut(req, res) {
|
|
const userId = SessionManager.getLoggedInUserId(req.session)
|
|
await BetaProgramHandler.promises.optOut(userId)
|
|
try {
|
|
await SplitTestHandler.promises.sessionMaintenance(req, null)
|
|
} catch (error) {
|
|
logger.error(
|
|
{ err: error },
|
|
'Failed to perform session maintenance after beta program opt out'
|
|
)
|
|
}
|
|
res.redirect('/beta/participate')
|
|
}
|
|
|
|
async function optInPage(req, res) {
|
|
const userId = SessionManager.getLoggedInUserId(req.session)
|
|
let user
|
|
try {
|
|
user = await UserGetter.promises.getUser(userId, { betaProgram: 1 })
|
|
} catch (error) {
|
|
throw OError.tag(error, 'error fetching user', {
|
|
userId,
|
|
})
|
|
}
|
|
res.render('beta_program/opt_in', {
|
|
title: 'sharelatex_beta_program',
|
|
user,
|
|
})
|
|
}
|
|
|
|
module.exports = {
|
|
optIn: expressify(optIn),
|
|
optOut: expressify(optOut),
|
|
optInPage: expressify(optInPage),
|
|
}
|