ReferencesController.js 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. /* eslint-disable
  2. max-len,
  3. no-unused-vars,
  4. */
  5. // TODO: This file was created by bulk-decaffeinate.
  6. // Fix any style issues and re-enable lint.
  7. /*
  8. * decaffeinate suggestions:
  9. * DS102: Remove unnecessary code created because of implicit returns
  10. * DS207: Consider shorter variations of null checks
  11. * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md
  12. */
  13. let ReferencesController
  14. const logger = require('@overleaf/logger')
  15. const ReferencesHandler = require('./ReferencesHandler')
  16. const settings = require('@overleaf/settings')
  17. const EditorRealTimeController = require('../Editor/EditorRealTimeController')
  18. module.exports = ReferencesController = {
  19. index(req, res) {
  20. const projectId = req.params.Project_id
  21. const { shouldBroadcast } = req.body
  22. const { docIds } = req.body
  23. if (!docIds || !(docIds instanceof Array)) {
  24. logger.err(
  25. { projectId, docIds },
  26. "docIds is not valid, should be either Array or String 'ALL'"
  27. )
  28. return res.sendStatus(400)
  29. }
  30. return ReferencesHandler.index(projectId, docIds, function (err, data) {
  31. if (err != null) {
  32. logger.err({ err, projectId }, 'error indexing all references')
  33. return res.sendStatus(500)
  34. }
  35. return ReferencesController._handleIndexResponse(
  36. req,
  37. res,
  38. projectId,
  39. shouldBroadcast,
  40. data
  41. )
  42. })
  43. },
  44. indexAll(req, res) {
  45. const projectId = req.params.Project_id
  46. const { shouldBroadcast } = req.body
  47. return ReferencesHandler.indexAll(projectId, function (err, data) {
  48. if (err != null) {
  49. logger.err({ err, projectId }, 'error indexing all references')
  50. return res.sendStatus(500)
  51. }
  52. return ReferencesController._handleIndexResponse(
  53. req,
  54. res,
  55. projectId,
  56. shouldBroadcast,
  57. data
  58. )
  59. })
  60. },
  61. _handleIndexResponse(req, res, projectId, shouldBroadcast, data) {
  62. if (data == null || data.keys == null) {
  63. return res.json({ projectId, keys: [] })
  64. }
  65. if (shouldBroadcast) {
  66. EditorRealTimeController.emitToRoom(
  67. projectId,
  68. 'references:keys:updated',
  69. data.keys
  70. )
  71. }
  72. return res.json(data)
  73. },
  74. }