diff --git a/rpg-docs/server/lib/cron/deleteRemovedDocuments.js b/rpg-docs/server/lib/cron/deleteRemovedDocuments.js index 83fe8f47..a139c9d6 100644 --- a/rpg-docs/server/lib/cron/deleteRemovedDocuments.js +++ b/rpg-docs/server/lib/cron/deleteRemovedDocuments.js @@ -1,43 +1,45 @@ -const collections = [ - Actions, Attacks, Buffs, Classes, Effects, Experiences, - Features, Notes, Proficiencies, SpellLists, Spells, - Containers, Items, -]; +Meteor.startup(() => { + const collections = [ + Attacks, Buffs, Classes, Effects, Experiences, + Features, Notes, Proficiencies, SpellLists, Spells, + Containers, Items, + ]; -/** - * Deletes all soft removed documents that were removed more than 30 minutes ago - * and were not restored - * @return {Number} Number of documents removed - */ -const deleteOldSoftRemovedDocs = function(){ - let numRemoved = 0; - const now = new Date(); - const thirtyMinutesAgo = new Date(now.getTime() - 30*60000); - _.each(collections, (collection) => { - numRemoved += collection.remove({ - removed: true, - removedAt: {$lt: thirtyMinutesAgo} // dates *before* 30 minutes ago + /** + * Deletes all soft removed documents that were removed more than 30 minutes ago + * and were not restored + * @return {Number} Number of documents removed + */ + const deleteOldSoftRemovedDocs = function(){ + let numRemoved = 0; + const now = new Date(); + const thirtyMinutesAgo = new Date(now.getTime() - 30*60000); + _.each(collections, (collection) => { + numRemoved += collection.remove({ + removed: true, + removedAt: {$lt: thirtyMinutesAgo} // dates *before* 30 minutes ago + }); }); - }); - return numRemoved; -}; + return numRemoved; + }; -SyncedCron.add({ - name: "Delete all soft removed items that haven't been restored", - schedule: function(parser) { - return parser.text('every 6 hours'); - }, - job: function() { - deleteOldSoftRemovedDocs(); - } -}); - -// Add a method to manually trigger removal -Meteor.methods({ - deleteOldSoftRemovedDocs() { - const user = Meteor.users.findOne(this.userId); - if (user && _.contains(user.roles, "admin")){ + SyncedCron.add({ + name: "Delete all soft removed items that haven't been restored", + schedule: function(parser) { + return parser.text('every 6 hours'); + }, + job: function() { deleteOldSoftRemovedDocs(); } - }, + }); + + // Add a method to manually trigger removal + Meteor.methods({ + deleteOldSoftRemovedDocs() { + const user = Meteor.users.findOne(this.userId); + if (user && _.contains(user.roles, "admin")){ + deleteOldSoftRemovedDocs(); + } + }, + }); });