EditorHttpController.coffee 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. ProjectEntityHandler = require "../Project/ProjectEntityHandler"
  2. logger = require "logger-sharelatex"
  3. EditorRealTimeController = require "./EditorRealTimeController"
  4. EditorController = require "./EditorController"
  5. module.exports = EditorHttpController =
  6. restoreDoc: (req, res, next) ->
  7. project_id = req.params.Project_id
  8. doc_id = req.params.doc_id
  9. name = req.body.name
  10. if !name?
  11. return res.send 400 # Malformed request
  12. logger.log project_id: project_id, doc_id: doc_id, "restoring doc"
  13. ProjectEntityHandler.restoreDoc project_id, doc_id, name, (err, doc, folder_id) =>
  14. return next(error) if error?
  15. EditorRealTimeController.emitToRoom(project_id, 'reciveNewDoc', folder_id, doc)
  16. res.json {
  17. doc_id: doc._id
  18. }
  19. addDoc: (req, res, next) ->
  20. project_id = req.params.Project_id
  21. name = req.body.name
  22. parent_folder_id = req.body.parent_folder_id
  23. EditorController.addDoc project_id, parent_folder_id, name, [], "editor", (error, doc) ->
  24. return next(error) if error?
  25. res.json doc
  26. addFolder: (req, res, next) ->
  27. project_id = req.params.Project_id
  28. name = req.body.name
  29. parent_folder_id = req.body.parent_folder_id
  30. EditorController.addFolder project_id, parent_folder_id, name, (error, doc) ->
  31. return next(error) if error?
  32. res.json doc
  33. renameEntity: (req, res, next) ->
  34. project_id = req.params.Project_id
  35. entity_id = req.params.entity_id
  36. entity_type = req.params.entity_type
  37. name = req.body.name
  38. if name.length > 150
  39. return res.send 400
  40. EditorController.renameEntity project_id, entity_id, entity_type, name, (error) ->
  41. return next(error) if error?
  42. res.send 204
  43. moveEntity: (req, res, next) ->
  44. project_id = req.params.Project_id
  45. entity_id = req.params.entity_id
  46. entity_type = req.params.entity_type
  47. folder_id = req.body.folder_id
  48. EditorController.moveEntity project_id, entity_id, folder_id, entity_type, (error) ->
  49. return next(error) if error?
  50. res.send 204
  51. deleteEntity: (req, res, next) ->
  52. project_id = req.params.Project_id
  53. entity_id = req.params.entity_id
  54. entity_type = req.params.entity_type
  55. EditorController.deleteEntity project_id, entity_id, entity_type, "editor", (error) ->
  56. return next(error) if error?
  57. res.send 204