MetadataController.coffee 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. EditorRealTimeController = require "../Editor/EditorRealTimeController"
  2. MetadataHandler = require './MetadataHandler'
  3. logger = require 'logger-sharelatex'
  4. module.exports = MetadataController =
  5. getAllLabels: (req, res, next) ->
  6. project_id = req.params.project_id
  7. logger.log {project_id}, "getting labels for project"
  8. MetadataHandler.getMetadataForProject project_id, (err, projectMetadata) ->
  9. if err?
  10. logger.err {project_id, err}, "[MetadataController] error getting labels from project"
  11. return next err
  12. res.json {
  13. projectId: project_id
  14. projectLabels: projectMetadata["labels"]
  15. }
  16. getAllPackages: (req, res, next) ->
  17. project_id = req.params.project_id
  18. logger.log {project_id}, "getting labels for project"
  19. MetadataHandler.getMetadataForProject project_id, (err, projectMetadata) ->
  20. if err?
  21. logger.err {project_id, err}, "[MetadataController] error getting labels from project"
  22. return next err
  23. res.json {
  24. projectId: project_id
  25. projectPackages: projectMetadata["packages"]
  26. }
  27. getAllMetadata: (req, res, next) ->
  28. project_id = req.params.project_id
  29. logger.log {project_id}, "getting metadata for project"
  30. MetadataHandler.getMetadataForProject project_id, (err, projectMetadata) ->
  31. if err?
  32. logger.err {project_id, err}, "[MetadataController] error getting metadata from project"
  33. return next(err)
  34. res.json {
  35. projectId: project_id
  36. projectLabels: projectMetadata["labels"]
  37. projectPackages: projectMetadata["packages"]
  38. }
  39. broadcastMetadataForDoc: (req, res, next) ->
  40. project_id = req.params.project_id
  41. doc_id = req.params.doc_id
  42. logger.log {project_id, doc_id}, "getting metadata for doc"
  43. MetadataHandler.getMetadataForDoc project_id, doc_id, (err, docMetadata) ->
  44. if err?
  45. logger.err {project_id, doc_id, err}, "[MetadataController] error getting metadata from doc"
  46. return next(err)
  47. EditorRealTimeController.emitToRoom project_id, "broadcastDocMetadata", {
  48. docId: doc_id
  49. metadata: {
  50. labels: docMetadata["labels"]
  51. packages: docMetadata["packages"]
  52. }
  53. }
  54. res.sendStatus 200