HttpController.coffee 2.0 KB

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