HttpController.coffee 2.9 KB

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