UpdateTrimmer.coffee 1.3 KB

1234567891011121314151617181920212223242526272829303132
  1. MongoManager = require "./MongoManager"
  2. WebApiManager = require "./WebApiManager"
  3. logger = require "logger-sharelatex"
  4. module.exports = UpdateTrimmer =
  5. _shouldTrimUpdates: (project_id, callback = (error, shouldTrim) ->) ->
  6. MongoManager.getProjectMetaData project_id, (error, metadata) ->
  7. return callback(error) if error?
  8. if metadata?.preserveHistory
  9. return callback null, false
  10. else
  11. WebApiManager.getProjectDetails project_id, (error, details) ->
  12. return callback(error) if error?
  13. logger.log project_id: project_id, details: details, "got details"
  14. if details?.features?.versioning
  15. MongoManager.setProjectMetaData project_id, preserveHistory: true, (error) ->
  16. return callback(error) if error?
  17. callback null, false
  18. else
  19. callback null, true
  20. deleteOldProjectUpdates: (project_id, callback = (error) ->) ->
  21. UpdateTrimmer._shouldTrimUpdates project_id, (error, shouldTrim) ->
  22. return callback(error) if error?
  23. if shouldTrim
  24. logger.log project_id: project_id, "deleting old updates"
  25. oneWeek = 7 * 24 * 60 * 60 * 1000
  26. before = Date.now() - oneWeek
  27. MongoManager.deleteOldProjectUpdates project_id, before, callback
  28. else
  29. logger.log project_id: project_id, "not deleting old updates"
  30. callback()