redis.js 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. /* eslint-disable
  2. n/handle-callback-err,
  3. max-len,
  4. no-unused-vars,
  5. */
  6. // TODO: This file was created by bulk-decaffeinate.
  7. // Fix any style issues and re-enable lint.
  8. /*
  9. * decaffeinate suggestions:
  10. * DS102: Remove unnecessary code created because of implicit returns
  11. * DS207: Consider shorter variations of null checks
  12. * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md
  13. */
  14. const Settings = require('@overleaf/settings')
  15. const logger = require('@overleaf/logger')
  16. const Async = require('async')
  17. const UserSessionsRedis = require('../../../../app/src/Features/User/UserSessionsRedis')
  18. // rclient = redis.createClient(Settings.redis.web)
  19. const rclient = UserSessionsRedis.client()
  20. module.exports = {
  21. getUserSessions(user, callback) {
  22. if (callback == null) {
  23. callback = function () {}
  24. }
  25. return rclient.smembers(
  26. UserSessionsRedis.sessionSetKey(user),
  27. (err, result) => callback(err, result)
  28. )
  29. },
  30. clearUserSessions(user, callback) {
  31. if (callback == null) {
  32. callback = function () {}
  33. }
  34. const sessionSetKey = UserSessionsRedis.sessionSetKey(user)
  35. return rclient.smembers(sessionSetKey, (err, sessionKeys) => {
  36. if (err) {
  37. return callback(err)
  38. }
  39. if (sessionKeys.length === 0) {
  40. return callback(null)
  41. }
  42. const actions = sessionKeys.map(k => cb => rclient.del(k, err => cb(err)))
  43. return Async.series(actions, (err, results) =>
  44. rclient.srem(sessionSetKey, sessionKeys, err => {
  45. if (err) {
  46. return callback(err)
  47. }
  48. return callback(null)
  49. })
  50. )
  51. })
  52. },
  53. }