BetaProgramHandler.js 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. /* eslint-disable
  2. camelcase,
  3. handle-callback-err,
  4. max-len,
  5. no-unused-vars,
  6. */
  7. // TODO: This file was created by bulk-decaffeinate.
  8. // Fix any style issues and re-enable lint.
  9. /*
  10. * decaffeinate suggestions:
  11. * DS102: Remove unnecessary code created because of implicit returns
  12. * DS207: Consider shorter variations of null checks
  13. * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md
  14. */
  15. let BetaProgramHandler
  16. const { User } = require('../../models/User')
  17. const logger = require('logger-sharelatex')
  18. const metrics = require('metrics-sharelatex')
  19. module.exports = BetaProgramHandler = {
  20. optIn(user_id, callback) {
  21. if (callback == null) {
  22. callback = function(err) {}
  23. }
  24. return User.findById(user_id, function(err, user) {
  25. if (err) {
  26. logger.warn({ err, user_id }, 'problem adding user to beta')
  27. return callback(err)
  28. }
  29. metrics.inc('beta-program.opt-in')
  30. user.betaProgram = true
  31. return user.save(function(err) {
  32. if (err) {
  33. logger.warn({ err, user_id }, 'problem adding user to beta')
  34. return callback(err)
  35. }
  36. return callback(null)
  37. })
  38. })
  39. },
  40. optOut(user_id, callback) {
  41. if (callback == null) {
  42. callback = function(err) {}
  43. }
  44. return User.findById(user_id, function(err, user) {
  45. if (err) {
  46. logger.warn({ err, user_id }, 'problem removing user from beta')
  47. return callback(err)
  48. }
  49. metrics.inc('beta-program.opt-out')
  50. user.betaProgram = false
  51. return user.save(function(err) {
  52. if (err) {
  53. logger.warn({ err, user_id }, 'problem removing user from beta')
  54. return callback(err)
  55. }
  56. return callback(null)
  57. })
  58. })
  59. }
  60. }