overleaf/services/track-changes/app/coffee/UpdateTrimmer.coffee

32 lines
No EOL
1.3 KiB
CoffeeScript

MongoManager = require "./MongoManager"
WebApiManager = require "./WebApiManager"
logger = require "logger-sharelatex"
module.exports = UpdateTrimmer =
_shouldTrimUpdates: (project_id, callback = (error, shouldTrim) ->) ->
MongoManager.getProjectMetaData project_id, (error, metadata) ->
return callback(error) if error?
if metadata?.preserveHistory
return callback null, false
else
WebApiManager.getProjectDetails project_id, (error, details) ->
return callback(error) if error?
logger.log project_id: project_id, details: details, "got details"
if details?.features?.versioning
MongoManager.setProjectMetaData project_id, preserveHistory: true, (error) ->
return callback(error) if error?
callback null, false
else
callback null, true
deleteOldProjectUpdates: (project_id, callback = (error) ->) ->
UpdateTrimmer._shouldTrimUpdates project_id, (error, shouldTrim) ->
return callback(error) if error?
if shouldTrim
logger.log project_id: project_id, "deleting old updates"
oneWeek = 7 * 24 * 60 * 60 * 1000
before = Date.now() - oneWeek
MongoManager.deleteOldProjectUpdates project_id, before, callback
else
logger.log project_id: project_id, "not deleting old updates"
callback()