2014-03-05 15:59:40 +00:00
|
|
|
UpdatesManager = require "./UpdatesManager"
|
2014-03-04 15:27:03 +00:00
|
|
|
DiffManager = require "./DiffManager"
|
2015-06-04 15:23:49 +00:00
|
|
|
PackManager = require "./PackManager"
|
2014-03-10 16:58:26 +00:00
|
|
|
RestoreManager = require "./RestoreManager"
|
2014-01-27 18:09:37 +00:00
|
|
|
logger = require "logger-sharelatex"
|
2015-08-06 14:11:43 +00:00
|
|
|
DocArchiveManager = require "./DocArchiveManager"
|
2014-01-27 18:09:37 +00:00
|
|
|
|
|
|
|
module.exports = HttpController =
|
2014-03-21 15:57:17 +00:00
|
|
|
flushDoc: (req, res, next = (error) ->) ->
|
2014-01-27 18:09:37 +00:00
|
|
|
doc_id = req.params.doc_id
|
2014-03-19 16:40:55 +00:00
|
|
|
project_id = req.params.project_id
|
2014-03-21 15:57:17 +00:00
|
|
|
logger.log project_id: project_id, doc_id: doc_id, "compressing doc history"
|
2014-03-19 16:40:55 +00:00
|
|
|
UpdatesManager.processUncompressedUpdatesWithLock project_id, doc_id, (error) ->
|
2014-01-27 18:09:37 +00:00
|
|
|
return next(error) if error?
|
|
|
|
res.send 204
|
2014-03-04 15:27:03 +00:00
|
|
|
|
2014-03-21 15:57:17 +00:00
|
|
|
flushProject: (req, res, next = (error) ->) ->
|
|
|
|
project_id = req.params.project_id
|
|
|
|
logger.log project_id: project_id, "compressing project history"
|
|
|
|
UpdatesManager.processUncompressedUpdatesForProject project_id, (error) ->
|
|
|
|
return next(error) if error?
|
|
|
|
res.send 204
|
|
|
|
|
2015-06-04 15:23:49 +00:00
|
|
|
packDoc: (req, res, next = (error) ->) ->
|
|
|
|
doc_id = req.params.doc_id
|
|
|
|
logger.log doc_id: doc_id, "packing doc history"
|
|
|
|
PackManager.packDocHistory doc_id, (error) ->
|
|
|
|
return next(error) if error?
|
|
|
|
res.send 204
|
|
|
|
|
2014-03-04 15:27:03 +00:00
|
|
|
getDiff: (req, res, next = (error) ->) ->
|
|
|
|
doc_id = req.params.doc_id
|
|
|
|
project_id = req.params.project_id
|
|
|
|
|
|
|
|
if req.query.from?
|
|
|
|
from = parseInt(req.query.from, 10)
|
|
|
|
else
|
|
|
|
from = null
|
|
|
|
if req.query.to?
|
|
|
|
to = parseInt(req.query.to, 10)
|
|
|
|
else
|
|
|
|
to = null
|
|
|
|
|
|
|
|
logger.log project_id, doc_id: doc_id, from: from, to: to, "getting diff"
|
|
|
|
DiffManager.getDiff project_id, doc_id, from, to, (error, diff) ->
|
|
|
|
return next(error) if error?
|
|
|
|
res.send JSON.stringify(diff: diff)
|
|
|
|
|
2014-03-05 15:06:46 +00:00
|
|
|
getUpdates: (req, res, next = (error) ->) ->
|
|
|
|
project_id = req.params.project_id
|
2014-03-05 15:59:40 +00:00
|
|
|
|
2014-03-20 12:10:04 +00:00
|
|
|
if req.query.before?
|
|
|
|
before = parseInt(req.query.before, 10)
|
|
|
|
if req.query.min_count?
|
|
|
|
min_count = parseInt(req.query.min_count, 10)
|
2014-03-05 15:59:40 +00:00
|
|
|
|
2014-03-20 12:10:04 +00:00
|
|
|
UpdatesManager.getSummarizedProjectUpdates project_id, before: before, min_count: min_count, (error, updates, nextBeforeTimestamp) ->
|
2014-03-05 15:59:40 +00:00
|
|
|
return next(error) if error?
|
2014-03-20 12:10:04 +00:00
|
|
|
res.send JSON.stringify
|
|
|
|
updates: updates
|
|
|
|
nextBeforeTimestamp: nextBeforeTimestamp
|
2014-03-11 17:39:40 +00:00
|
|
|
|
2014-03-10 16:58:26 +00:00
|
|
|
restore: (req, res, next = (error) ->) ->
|
|
|
|
{doc_id, project_id, version} = req.params
|
2014-03-11 13:01:07 +00:00
|
|
|
user_id = req.headers["x-user-id"]
|
2014-03-10 16:58:26 +00:00
|
|
|
version = parseInt(version, 10)
|
2014-03-11 13:01:07 +00:00
|
|
|
RestoreManager.restoreToBeforeVersion project_id, doc_id, version, user_id, (error) ->
|
2014-03-10 16:58:26 +00:00
|
|
|
return next(error) if error?
|
|
|
|
res.send 204
|
2015-08-06 14:11:43 +00:00
|
|
|
|
|
|
|
archiveProject: (req, res, next = (error) ->) ->
|
|
|
|
project_id = req.params.project_id
|
2015-08-06 20:09:36 +00:00
|
|
|
logger.log project_id: project_id, "archiving all track changes to s3"
|
2015-08-06 14:11:43 +00:00
|
|
|
DocArchiveManager.archiveAllDocsChanges project_id, (error) ->
|
2015-08-06 20:09:36 +00:00
|
|
|
return next(error) if error?
|
|
|
|
res.send 204
|
|
|
|
|
|
|
|
unArchiveProject: (req, res, next = (error) ->) ->
|
|
|
|
project_id = req.params.project_id
|
|
|
|
logger.log project_id: project_id, "unarchiving all track changes from s3"
|
|
|
|
DocArchiveManager.unArchiveAllDocsChanges project_id, (error) ->
|
2015-08-06 14:11:43 +00:00
|
|
|
return next(error) if error?
|
|
|
|
res.send 204
|