HttpController.coffee 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. UpdatesManager = require "./UpdatesManager"
  2. DiffManager = require "./DiffManager"
  3. logger = require "logger-sharelatex"
  4. module.exports = HttpController =
  5. flushUpdatesWithLock: (req, res, next = (error) ->) ->
  6. doc_id = req.params.doc_id
  7. logger.log doc_id: doc_id, "compressing doc history"
  8. UpdatesManager.processUncompressedUpdatesWithLock doc_id, (error) ->
  9. return next(error) if error?
  10. res.send 204
  11. getDiff: (req, res, next = (error) ->) ->
  12. doc_id = req.params.doc_id
  13. project_id = req.params.project_id
  14. if req.query.from?
  15. from = parseInt(req.query.from, 10)
  16. else
  17. from = null
  18. if req.query.to?
  19. to = parseInt(req.query.to, 10)
  20. else
  21. to = null
  22. logger.log project_id, doc_id: doc_id, from: from, to: to, "getting diff"
  23. DiffManager.getDiff project_id, doc_id, from, to, (error, diff) ->
  24. return next(error) if error?
  25. res.send JSON.stringify(diff: diff)
  26. getUpdates: (req, res, next = (error) ->) ->
  27. doc_id = req.params.doc_id
  28. project_id = req.params.project_id
  29. if req.query.to?
  30. to = parseInt(req.query.to, 10)
  31. if req.query.limit?
  32. limit = parseInt(req.query.limit, 10)
  33. UpdatesManager.getUpdatesWithUserInfo doc_id, to: to, limit: limit, (error, updates) ->
  34. return next(error) if error?
  35. formattedUpdates = for update in updates
  36. {
  37. meta: update.meta
  38. v: update.v
  39. }
  40. res.send JSON.stringify updates: formattedUpdates