notifications.pushGroups

v1.18.x
barisusakli 8 years ago
parent 0c9f61c629
commit f1a933210b

@ -236,6 +236,19 @@ var utils = require('../public/src/utils');
});
};
Notifications.pushGroups = function (notification, groupNames, callback) {
callback = callback || function () {};
groups.getMembersOfGroups(groupNames, function (err, groupMembers) {
if (err) {
return callback(err);
}
var members = _.unique(_.flatten(groupMembers));
Notifications.push(notification, members, callback);
});
};
Notifications.rescind = function (nid, callback) {
callback = callback || function () {};

@ -67,6 +67,32 @@ describe('Notifications', function () {
});
});
it('should push a notification to a group', function (done) {
notifications.pushGroup(notification, 'registered-users', function (err) {
assert.ifError(err);
setTimeout(function () {
db.isSortedSetMember('uid:' + uid + ':notifications:unread', notification.nid, function (err, isMember) {
assert.ifError(err);
assert(isMember);
done();
});
}, 2000);
});
});
it('should push a notification to groups', function (done) {
notifications.pushGroup(notification, ['registered-users', 'administrators'], function (err) {
assert.ifError(err);
setTimeout(function () {
db.isSortedSetMember('uid:' + uid + ':notifications:unread', notification.nid, function (err, isMember) {
assert.ifError(err);
assert(isMember);
done();
});
}, 2000);
});
});
it('should mark a notification read', function (done) {
notifications.markRead(notification.nid, uid, function (err) {
assert.ifError(err);

Loading…
Cancel
Save