MetaController.js 2.1 KB

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