MetaController.js 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  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 MetaController
  14. const OError = require('@overleaf/o-error')
  15. const EditorRealTimeController = require('../Editor/EditorRealTimeController')
  16. const MetaHandler = require('./MetaHandler')
  17. const logger = require('@overleaf/logger')
  18. module.exports = MetaController = {
  19. getMetadata(req, res, next) {
  20. const { project_id: projectId } = req.params
  21. logger.debug({ projectId }, 'getting all labels for project')
  22. return MetaHandler.getAllMetaForProject(
  23. projectId,
  24. function (err, projectMeta) {
  25. if (err != null) {
  26. OError.tag(
  27. err,
  28. '[MetaController] error getting all labels from project',
  29. {
  30. project_id: projectId,
  31. }
  32. )
  33. return next(err)
  34. }
  35. return res.json({ projectId, projectMeta })
  36. }
  37. )
  38. },
  39. broadcastMetadataForDoc(req, res, next) {
  40. const { project_id: projectId } = req.params
  41. const { doc_id: docId } = req.params
  42. const { broadcast } = req.body
  43. logger.debug({ projectId, docId, broadcast }, 'getting labels for doc')
  44. return MetaHandler.getMetaForDoc(projectId, docId, function (err, docMeta) {
  45. if (err != null) {
  46. OError.tag(err, '[MetaController] error getting labels from doc', {
  47. project_id: projectId,
  48. doc_id: docId,
  49. })
  50. return next(err)
  51. }
  52. // default to broadcasting, unless explicitly disabled (for backwards compatibility)
  53. if (broadcast !== false) {
  54. EditorRealTimeController.emitToRoom(projectId, 'broadcastDocMeta', {
  55. docId,
  56. meta: docMeta,
  57. })
  58. return res.sendStatus(200)
  59. } else {
  60. return res.json({ docId, meta: docMeta })
  61. }
  62. })
  63. },
  64. }