DocArchiveManager.coffee 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. MongoManager = require "./MongoManager"
  2. MongoAWS = require "./MongoAWS"
  3. logger = require "logger-sharelatex"
  4. _ = require "underscore"
  5. async = require "async"
  6. settings = require("settings-sharelatex")
  7. request = require("request")
  8. crypto = require("crypto")
  9. thirtySeconds = 30 * 1000
  10. module.exports = DocArchiveManager =
  11. archiveAllDocsChanges: (project_id, callback = (error, docs) ->) ->
  12. MongoManager.getProjectsDocs project_id, (error, docs) ->
  13. if error?
  14. return callback(error)
  15. else if !docs?
  16. return callback new Error("No docs for project #{project_id}")
  17. jobs = _.map docs, (doc) ->
  18. (cb)-> DocArchiveManager.archiveDocChanges project_id, doc._id, cb
  19. async.series jobs, callback
  20. archiveDocChanges: (project_id, doc_id, callback)->
  21. MongoManager.getDocChangesCount doc_id, (error, count) ->
  22. if count == 0
  23. return callback()
  24. else
  25. MongoAWS.archiveDocHistory project_id, doc_id, (error) ->
  26. logger.log doc_id:doc_id, error: error, "mongoexport"
  27. return callback()
  28. unArchiveAllDocsChanges: (project_id, callback = (error, docs) ->) ->
  29. MongoManager.getProjectsDocs project_id, (error, docs) ->
  30. if error?
  31. return callback(error)
  32. else if !docs?
  33. return callback new Error("No docs for project #{project_id}")
  34. jobs = _.map docs, (doc) ->
  35. (cb)-> DocArchiveManager.unArchiveDocChanges project_id, doc._id, cb
  36. async.series jobs, callback
  37. unArchiveDocChanges: (project_id, doc_id, callback)->
  38. MongoManager.getDocChangesCount doc_id, (error, count) ->
  39. if count == 0
  40. return callback()
  41. else
  42. MongoAWS.unArchiveDocHistory project_id, doc_id, (error) ->
  43. logger.log doc_id:doc_id, error: error, "mongoimport"
  44. return callback()