BetaProgramHandler.mjs 825 B

1234567891011121314151617181920212223242526272829303132333435
  1. import { callbackify } from 'util'
  2. import metrics from '@overleaf/metrics'
  3. import UserUpdater from '../User/UserUpdater.js'
  4. import AnalyticsManager from '../Analytics/AnalyticsManager.js'
  5. async function optIn(userId) {
  6. await UserUpdater.promises.updateUser(userId, { $set: { betaProgram: true } })
  7. metrics.inc('beta-program.opt-in')
  8. AnalyticsManager.setUserPropertyForUserInBackground(
  9. userId,
  10. 'beta-program',
  11. true
  12. )
  13. }
  14. async function optOut(userId) {
  15. await UserUpdater.promises.updateUser(userId, {
  16. $set: { betaProgram: false },
  17. })
  18. metrics.inc('beta-program.opt-out')
  19. AnalyticsManager.setUserPropertyForUserInBackground(
  20. userId,
  21. 'beta-program',
  22. false
  23. )
  24. }
  25. export default {
  26. optIn: callbackify(optIn),
  27. optOut: callbackify(optOut),
  28. promises: {
  29. optIn,
  30. optOut,
  31. },
  32. }