BetaProgramController.js 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. const BetaProgramHandler = require('./BetaProgramHandler')
  2. const OError = require('@overleaf/o-error')
  3. const UserGetter = require('../User/UserGetter')
  4. const Settings = require('@overleaf/settings')
  5. const logger = require('@overleaf/logger')
  6. const SessionManager = require('../Authentication/SessionManager')
  7. const BetaProgramController = {
  8. optIn(req, res, next) {
  9. const userId = SessionManager.getLoggedInUserId(req.session)
  10. logger.debug({ userId }, 'user opting in to beta program')
  11. if (userId == null) {
  12. return next(new Error('no user id in session'))
  13. }
  14. BetaProgramHandler.optIn(userId, function (err) {
  15. if (err) {
  16. return next(err)
  17. }
  18. res.redirect('/beta/participate')
  19. })
  20. },
  21. optOut(req, res, next) {
  22. const userId = SessionManager.getLoggedInUserId(req.session)
  23. logger.debug({ userId }, 'user opting out of beta program')
  24. if (userId == null) {
  25. return next(new Error('no user id in session'))
  26. }
  27. BetaProgramHandler.optOut(userId, function (err) {
  28. if (err) {
  29. return next(err)
  30. }
  31. res.redirect('/beta/participate')
  32. })
  33. },
  34. optInPage(req, res, next) {
  35. const userId = SessionManager.getLoggedInUserId(req.session)
  36. logger.debug(
  37. { user_id: userId },
  38. 'showing beta participation page for user'
  39. )
  40. UserGetter.getUser(userId, function (err, user) {
  41. if (err) {
  42. OError.tag(err, 'error fetching user', {
  43. userId,
  44. })
  45. return next(err)
  46. }
  47. res.render('beta_program/opt_in', {
  48. title: 'sharelatex_beta_program',
  49. user,
  50. languages: Settings.languages,
  51. })
  52. })
  53. },
  54. }
  55. module.exports = BetaProgramController