From e3e1a556cdb9e747f40f0d6316c89f45d7e49e7b Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Thu, 28 Nov 2013 12:55:05 -0500 Subject: [PATCH] groups pruning method --- src/groups.js | 32 +++++++++++++++++++++++++++++++- src/routes/debug.js | 6 ------ 2 files changed, 31 insertions(+), 7 deletions(-) diff --git a/src/groups.js b/src/groups.js index daff7d744e..e0abb71b92 100644 --- a/src/groups.js +++ b/src/groups.js @@ -13,8 +13,10 @@ expand: options.expand }, next); }, function (err, groups) { + // Remove deleted and hidden groups from this list callback(err, groups.filter(function (group) { - if (group.deleted === '1') { + console.log(group); + if (group.deleted === '1' || group.hidden === '1') { return false; } else { return true; @@ -219,5 +221,33 @@ } }); }; + + Groups.prune = function(callback) { + // Actually deletes groups (with the deleted flag) from the redis database + RDB.hvals('group:gid', function (err, gids) { + var multi = RDB.multi(), + groupsDeleted = 0; + + async.each(gids, function(gid, next) { + Groups.get(gid, {}, function(err, groupObj) { + if (!err && groupObj.deleted === '1') { + multi.hdel('group:gid', groupObj.name); + multi.del('gid:' + gid); + groupsDeleted++; + } + + next(null); + }); + }, function(err) { + multi.exec(function(err) { + if (!err && process.env.NODE_ENV === 'development') { + winston.info('[groups.prune] Pruned ' + groupsDeleted + ' deleted groups from Redis'); + } + + callback(err); + }); + }); + }); + }; }(module.exports)); diff --git a/src/routes/debug.js b/src/routes/debug.js index f604e0c18a..ba81edd7bc 100644 --- a/src/routes/debug.js +++ b/src/routes/debug.js @@ -54,12 +54,6 @@ var DebugRoute = function(app) { } }); }); - - app.get('/uuidtest', function(req, res) { - var Utils = require('../../public/src/utils.js'); - - res.send(Utils.generateUUID()); - }); }); };