HttpController.coffee 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. UpdatesManager = require "./UpdatesManager"
  2. DiffManager = require "./DiffManager"
  3. PackManager = require "./PackManager"
  4. RestoreManager = require "./RestoreManager"
  5. logger = require "logger-sharelatex"
  6. module.exports = HttpController =
  7. flushDoc: (req, res, next = (error) ->) ->
  8. doc_id = req.params.doc_id
  9. project_id = req.params.project_id
  10. logger.log project_id: project_id, doc_id: doc_id, "compressing doc history"
  11. UpdatesManager.processUncompressedUpdatesWithLock project_id, doc_id, (error) ->
  12. return next(error) if error?
  13. res.send 204
  14. flushProject: (req, res, next = (error) ->) ->
  15. project_id = req.params.project_id
  16. logger.log project_id: project_id, "compressing project history"
  17. UpdatesManager.processUncompressedUpdatesForProject project_id, (error) ->
  18. return next(error) if error?
  19. res.send 204
  20. packDoc: (req, res, next = (error) ->) ->
  21. doc_id = req.params.doc_id
  22. logger.log doc_id: doc_id, "packing doc history"
  23. PackManager.packDocHistory doc_id, (error) ->
  24. return next(error) if error?
  25. res.send 204
  26. getDiff: (req, res, next = (error) ->) ->
  27. doc_id = req.params.doc_id
  28. project_id = req.params.project_id
  29. if req.query.from?
  30. from = parseInt(req.query.from, 10)
  31. else
  32. from = null
  33. if req.query.to?
  34. to = parseInt(req.query.to, 10)
  35. else
  36. to = null
  37. logger.log project_id, doc_id: doc_id, from: from, to: to, "getting diff"
  38. DiffManager.getDiff project_id, doc_id, from, to, (error, diff) ->
  39. return next(error) if error?
  40. res.send JSON.stringify(diff: diff)
  41. getUpdates: (req, res, next = (error) ->) ->
  42. project_id = req.params.project_id
  43. if req.query.before?
  44. before = parseInt(req.query.before, 10)
  45. if req.query.min_count?
  46. min_count = parseInt(req.query.min_count, 10)
  47. UpdatesManager.getSummarizedProjectUpdates project_id, before: before, min_count: min_count, (error, updates, nextBeforeTimestamp) ->
  48. return next(error) if error?
  49. res.send JSON.stringify
  50. updates: updates
  51. nextBeforeTimestamp: nextBeforeTimestamp
  52. restore: (req, res, next = (error) ->) ->
  53. {doc_id, project_id, version} = req.params
  54. user_id = req.headers["x-user-id"]
  55. version = parseInt(version, 10)
  56. RestoreManager.restoreToBeforeVersion project_id, doc_id, version, user_id, (error) ->
  57. return next(error) if error?
  58. res.send 204