| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- DocumentManager = require "./DocumentManager"
- ProjectManager = require "./ProjectManager"
- Errors = require "./Errors"
- logger = require "logger-sharelatex"
- Metrics = require "./Metrics"
- module.exports = HttpController =
- getDoc: (req, res, next = (error) ->) ->
- doc_id = req.params.doc_id
- project_id = req.params.project_id
- logger.log project_id: project_id, doc_id: doc_id, "getting doc via http"
- timer = new Metrics.Timer("http.getDoc")
- if req.query?.fromVersion?
- fromVersion = parseInt(req.query.fromVersion, 10)
- else
- fromVersion = -1
- DocumentManager.getDocAndRecentOpsWithLock project_id, doc_id, fromVersion, (error, lines, version, ops) ->
- timer.done()
- return next(error) if error?
- logger.log project_id: project_id, doc_id: doc_id, "got doc via http"
- if !lines? or !version?
- return next(new Errors.NotFoundError("document not found"))
- res.send JSON.stringify
- id: doc_id
- lines: lines
- version: version
- ops: ops
- setDoc: (req, res, next = (error) ->) ->
- doc_id = req.params.doc_id
- project_id = req.params.project_id
- lines = req.body.lines
- logger.log project_id: project_id, doc_id: doc_id, lines: lines, "setting doc via http"
- timer = new Metrics.Timer("http.setDoc")
- DocumentManager.setDocWithLock project_id, doc_id, lines, (error) ->
- timer.done()
- return next(error) if error?
- logger.log project_id: project_id, doc_id: doc_id, "set doc via http"
- res.send 204 # No Content
-
- flushDocIfLoaded: (req, res, next = (error) ->) ->
- doc_id = req.params.doc_id
- project_id = req.params.project_id
- logger.log project_id: project_id, doc_id: doc_id, "flushing doc via http"
- timer = new Metrics.Timer("http.flushDoc")
- DocumentManager.flushDocIfLoadedWithLock project_id, doc_id, (error) ->
- timer.done()
- return next(error) if error?
- logger.log project_id: project_id, doc_id: doc_id, "flushed doc via http"
- res.send 204 # No Content
-
- flushAndDeleteDoc: (req, res, next = (error) ->) ->
- doc_id = req.params.doc_id
- project_id = req.params.project_id
- logger.log project_id: project_id, doc_id: doc_id, "deleting doc via http"
- timer = new Metrics.Timer("http.deleteDoc")
- DocumentManager.flushAndDeleteDocWithLock project_id, doc_id, (error) ->
- timer.done()
- return next(error) if error?
- logger.log project_id: project_id, doc_id: doc_id, "deleted doc via http"
- res.send 204 # No Content
- flushProject: (req, res, next = (error) ->) ->
- project_id = req.params.project_id
- logger.log project_id: project_id, "flushing project via http"
- timer = new Metrics.Timer("http.flushProject")
- ProjectManager.flushProjectWithLocks project_id, (error) ->
- timer.done()
- return next(error) if error?
- logger.log project_id: project_id, "flushed project via http"
- res.send 204 # No Content
-
- deleteProject: (req, res, next = (error) ->) ->
- project_id = req.params.project_id
- logger.log project_id: project_id, "deleting project via http"
- timer = new Metrics.Timer("http.deleteProject")
- ProjectManager.flushAndDeleteProjectWithLocks project_id, (error) ->
- timer.done()
- return next(error) if error?
- logger.log project_id: project_id, "deleted project via http"
- res.send 204 # No Content
-
|