Files
overleaf-cep/services/web/app/src/Features/BetaProgram/BetaProgramController.js
Alexandre Bourdin 9468e5cb4f Merge pull request #4338 from overleaf/ab-session-manager
Extract functions from AuthenticationController to SessionManager

GitOrigin-RevId: 86870ce03a762e1a837dcf493759e8851e759883
2021-07-28 12:36:22 +00:00

57 lines
1.7 KiB
JavaScript

const BetaProgramHandler = require('./BetaProgramHandler')
const OError = require('@overleaf/o-error')
const UserGetter = require('../User/UserGetter')
const Settings = require('@overleaf/settings')
const logger = require('logger-sharelatex')
const SessionManager = require('../Authentication/SessionManager')
const BetaProgramController = {
optIn(req, res, next) {
const userId = SessionManager.getLoggedInUserId(req.session)
logger.log({ userId }, 'user opting in to beta program')
if (userId == null) {
return next(new Error('no user id in session'))
}
BetaProgramHandler.optIn(userId, function (err) {
if (err) {
return next(err)
}
res.redirect('/beta/participate')
})
},
optOut(req, res, next) {
const userId = SessionManager.getLoggedInUserId(req.session)
logger.log({ userId }, 'user opting out of beta program')
if (userId == null) {
return next(new Error('no user id in session'))
}
BetaProgramHandler.optOut(userId, function (err) {
if (err) {
return next(err)
}
res.redirect('/beta/participate')
})
},
optInPage(req, res, next) {
const userId = SessionManager.getLoggedInUserId(req.session)
logger.log({ user_id: userId }, 'showing beta participation page for user')
UserGetter.getUser(userId, function (err, user) {
if (err) {
OError.tag(err, 'error fetching user', {
userId,
})
return next(err)
}
res.render('beta_program/opt_in', {
title: 'sharelatex_beta_program',
user,
languages: Settings.languages,
})
})
},
}
module.exports = BetaProgramController