From 46d6d7637e36e1328e0548387926fdcdc353ce3f Mon Sep 17 00:00:00 2001 From: psychobunny Date: Wed, 27 Nov 2013 11:21:16 -0500 Subject: [PATCH] potentially fixes ubbmigrator issue https://github.com/akhoury/nodebb-plugin-ubbmigrator/issues/2 --- src/groups.js | 219 ++++++++++++++++++++++++++------------------------ 1 file changed, 113 insertions(+), 106 deletions(-) diff --git a/src/groups.js b/src/groups.js index d92865978f..fe21254f55 100644 --- a/src/groups.js +++ b/src/groups.js @@ -1,121 +1,128 @@ -(function () { +(function(Groups) { "use strict"; var async = require('async'), User = require('./user'), - RDB = RDB || require('./redis'), - Groups = { - list: function (options, callback) { - RDB.hvals('group:gid', function (err, gids) { - if (gids.length > 0) { - async.map(gids, function (gid, next) { - Groups.get(gid, { - expand: options.expand - }, next); - }, function (err, groups) { - callback(err, groups.filter(function (group) { - if (group.deleted === '1') { - return false; - } else { - return true; - } - })); - }); - } else { - callback(null, []); - } + RDB = RDB || require('./redis'); + + Groups.list = function(options, callback) { + RDB.hvals('group:gid', function (err, gids) { + if (gids.length > 0) { + async.map(gids, function (gid, next) { + Groups.get(gid, { + expand: options.expand + }, next); + }, function (err, groups) { + callback(err, groups.filter(function (group) { + if (group.deleted === '1') { + return false; + } else { + return true; + } + })); }); + } else { + callback(null, []); + } + }); + }; + + Groups.get = function(gid, options, callback) { + async.parallel({ + base: function (next) { + RDB.hgetall('gid:' + gid, next); }, - get: function (gid, options, callback) { - async.parallel({ - base: function (next) { - RDB.hgetall('gid:' + gid, next); - }, - users: function (next) { - RDB.smembers('gid:' + gid + ':members', function (err, uids) { - if (options.expand) { - if (err) { - return next(err); - } - - async.map(uids, function (uid, next) { - User.getUserData(uid, next); - }, function (err, users) { - next(err, users); - }); - } else { - next(err, uids); - } + users: function (next) { + RDB.smembers('gid:' + gid + ':members', function (err, uids) { + if (options.expand) { + if (err) { + return next(err); + } + + async.map(uids, function (uid, next) { + User.getUserData(uid, next); + }, function (err, users) { + next(err, users); }); + } else { + next(err, uids); } - }, function (err, results) { - if (err) { - return callback(err); - } + }); + } + }, function (err, results) { + if (err) { + return callback(err); + } - results.base.count = results.users.length; - results.base.members = results.users; + results.base.count = results.users.length; + results.base.members = results.users; - results.base.deletable = (results.base.gid !== '1'); + results.base.deletable = (results.base.gid !== '1'); - callback(err, results.base); - }); - }, - getGidFromName: function (name, callback) { - RDB.hget('group:gid', name, callback); - }, - isMember: function (uid, gid, callback) { - RDB.sismember('gid:' + gid + ':members', uid, callback); - }, - exists: function (name, callback) { - RDB.hexists('group:gid', name, callback); - }, - create: function (name, description, callback) { - if (name.length === 0) { - return callback(new Error('name-too-short')); - } - - Groups.exists(name, function (err, exists) { - if (!exists) { - RDB.incr('next_gid', function (err, gid) { - RDB.multi() - .hset('group:gid', name, gid) - .hmset('gid:' + gid, { - gid: gid, - name: name, - description: description, - deleted: '0' - }) - .exec(function (err) { - Groups.get(gid, {}, callback); - }); + callback(err, results.base); + }); + }; + + Groups.getGidFromName = function(name, callback) { + RDB.hget('group:gid', name, callback); + }; + + Groups.isMember = function(uid, gid, callback) { + RDB.sismember('gid:' + gid + ':members', uid, callback); + }; + + Groups.exists = function(name, callback) { + RDB.hexists('group:gid', name, callback); + }; + + Groups.create = function(name, description, callback) { + if (name.length === 0) { + return callback(new Error('name-too-short')); + } + + Groups.exists(name, function (err, exists) { + if (!exists) { + RDB.incr('next_gid', function (err, gid) { + RDB.multi() + .hset('group:gid', name, gid) + .hmset('gid:' + gid, { + gid: gid, + name: name, + description: description, + deleted: '0' + }) + .exec(function (err) { + Groups.get(gid, {}, callback); }); - } else { - callback(new Error('group-exists')); - } }); - }, - update: function (gid, values, callback) { - RDB.exists('gid:' + gid, function (err, exists) { - if (!err && exists) { - RDB.hmset('gid:' + gid, values, callback); - } else { - callback(new Error('gid-not-found')); - } - }); - }, - destroy: function (gid, callback) { - if (gid !== 1) { - RDB.hset('gid:' + gid, 'deleted', '1', callback); - } - }, - join: function (gid, uid, callback) { - RDB.sadd('gid:' + gid + ':members', uid, callback); - }, - leave: function (gid, uid, callback) { - RDB.srem('gid:' + gid + ':members', uid, callback); + } else { + callback(new Error('group-exists')); } - }; + }); + }; + + Groups.update = function(gid, values, callback) { + RDB.exists('gid:' + gid, function (err, exists) { + if (!err && exists) { + RDB.hmset('gid:' + gid, values, callback); + } else { + callback(new Error('gid-not-found')); + } + }); + }; + + Groups.destroy = function(gid, callback) { + if (gid !== 1) { + RDB.hset('gid:' + gid, 'deleted', '1', callback); + } + }; + + Groups.join = function(gid, uid, callback) { + RDB.sadd('gid:' + gid + ':members', uid, callback); + }; - module.exports = Groups; -}()); \ No newline at end of file + Groups.leave = function(gid, uid, callback) { + RDB.srem('gid:' + gid + ':members', uid, callback); + }; + +}(module.exports));