DocumentController.coffee 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. ProjectEntityHandler = require "../Project/ProjectEntityHandler"
  2. ProjectEntityUpdateHandler = require "../Project/ProjectEntityUpdateHandler"
  3. logger = require("logger-sharelatex")
  4. module.exports =
  5. getDocument: (req, res, next = (error) ->) ->
  6. project_id = req.params.Project_id
  7. doc_id = req.params.doc_id
  8. plain = req?.query?.plain == 'true'
  9. logger.log doc_id:doc_id, project_id:project_id, "receiving get document request from api (docupdater)"
  10. ProjectEntityHandler.getDoc project_id, doc_id, {pathname: true}, (error, lines, rev, version, ranges, pathname) ->
  11. if error?
  12. logger.err err:error, doc_id:doc_id, project_id:project_id, "error finding element for getDocument"
  13. return next(error)
  14. if plain
  15. res.type "text/plain"
  16. res.send lines.join('\n')
  17. else
  18. res.type "json"
  19. res.send JSON.stringify {
  20. lines: lines
  21. version: version
  22. ranges: ranges
  23. pathname: pathname
  24. }
  25. setDocument: (req, res, next = (error) ->) ->
  26. project_id = req.params.Project_id
  27. doc_id = req.params.doc_id
  28. {lines, version, ranges} = req.body
  29. logger.log doc_id:doc_id, project_id:project_id, "receiving set document request from api (docupdater)"
  30. ProjectEntityUpdateHandler.updateDocLines project_id, doc_id, lines, version, ranges, (error) ->
  31. if error?
  32. logger.err err:error, doc_id:doc_id, project_id:project_id, "error finding element for getDocument"
  33. return next(error)
  34. logger.log doc_id:doc_id, project_id:project_id, "finished receiving set document request from api (docupdater)"
  35. res.sendStatus 200