BetaProgramController.js 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  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({ userId }, 'showing beta participation page for user')
  37. UserGetter.getUser(userId, function (err, user) {
  38. if (err) {
  39. OError.tag(err, 'error fetching user', {
  40. userId,
  41. })
  42. return next(err)
  43. }
  44. res.render('beta_program/opt_in', {
  45. title: 'sharelatex_beta_program',
  46. user,
  47. languages: Settings.languages,
  48. })
  49. })
  50. },
  51. }
  52. module.exports = BetaProgramController