HttpController.coffee 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. UpdatesManager = require "./UpdatesManager"
  2. DiffManager = require "./DiffManager"
  3. RestoreManager = require "./RestoreManager"
  4. logger = require "logger-sharelatex"
  5. module.exports = HttpController =
  6. flushUpdatesWithLock: (req, res, next = (error) ->) ->
  7. doc_id = req.params.doc_id
  8. project_id = req.params.project_id
  9. logger.log doc_id: doc_id, "compressing doc history"
  10. UpdatesManager.processUncompressedUpdatesWithLock project_id, doc_id, (error) ->
  11. return next(error) if error?
  12. res.send 204
  13. getDiff: (req, res, next = (error) ->) ->
  14. doc_id = req.params.doc_id
  15. project_id = req.params.project_id
  16. if req.query.from?
  17. from = parseInt(req.query.from, 10)
  18. else
  19. from = null
  20. if req.query.to?
  21. to = parseInt(req.query.to, 10)
  22. else
  23. to = null
  24. logger.log project_id, doc_id: doc_id, from: from, to: to, "getting diff"
  25. DiffManager.getDiff project_id, doc_id, from, to, (error, diff) ->
  26. return next(error) if error?
  27. res.send JSON.stringify(diff: diff)
  28. getUpdates: (req, res, next = (error) ->) ->
  29. doc_id = req.params.doc_id
  30. project_id = req.params.project_id
  31. if req.query.to?
  32. to = parseInt(req.query.to, 10)
  33. if req.query.limit?
  34. limit = parseInt(req.query.limit, 10)
  35. UpdatesManager.getSummarizedUpdates project_id, doc_id, to: to, limit: limit, (error, updates) ->
  36. return next(error) if error?
  37. res.send JSON.stringify updates: updates
  38. restore: (req, res, next = (error) ->) ->
  39. {doc_id, project_id, version} = req.params
  40. user_id = req.headers["x-user-id"]
  41. version = parseInt(version, 10)
  42. RestoreManager.restoreToBeforeVersion project_id, doc_id, version, user_id, (error) ->
  43. return next(error) if error?
  44. res.send 204