From d360a9bcacd5d7a8621c78d857a21a2ddd02b8d0 Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Thu, 6 Feb 2014 17:09:36 -0500 Subject: [PATCH] resolved #868 --- src/groups.js | 18 ++++++++++++++++++ src/socket.io/groups.js | 11 +++++++++++ 2 files changed, 29 insertions(+) create mode 100644 src/socket.io/groups.js diff --git a/src/groups.js b/src/groups.js index f0541f824f..8d9b50067c 100644 --- a/src/groups.js +++ b/src/groups.js @@ -86,6 +86,24 @@ }); }; + Groups.getMemberships = function(uid, callback) { + if (!uid) { + return callback(new Error('no-uid-specified')); + } + + db.getObjectValues('group:gid', function(err, gids) { + async.filter(gids, function(gid, next) { + Groups.isMember(uid, gid, function(err, isMember) { + next(isMember); + }); + }, function(gids) { + async.map(gids, function(gid, next) { + Groups.get(gid, {}, next); + }, callback); + }); + }); + }; + Groups.isDeleted = function(gid, callback) { db.getObjectField('gid:' + gid, 'deleted', function(err, deleted) { callback(err, parseInt(deleted, 10) === 1); diff --git a/src/socket.io/groups.js b/src/socket.io/groups.js new file mode 100644 index 0000000000..368a48f709 --- /dev/null +++ b/src/socket.io/groups.js @@ -0,0 +1,11 @@ +var Groups = require('../groups'), + + SocketGroups = {}; + +SocketGroups.getMemberships = function(socket, data, callback) { + if (data && data.uid) { + Groups.getMemberships(data.uid, callback); + } +}; + +module.exports = SocketGroups; \ No newline at end of file