feat: send notification to group owners when someone leaves

This commit is contained in:
Barış Soner Uşaklı
2019-09-28 22:44:13 -04:00
parent 2150701f32
commit ed1223645e
3 changed files with 14 additions and 3 deletions

View File

@@ -1,11 +1,13 @@
'use strict';
const validator = require('validator');
const groups = require('../groups');
const meta = require('../meta');
const user = require('../user');
const utils = require('../utils');
const events = require('../events');
const privileges = require('../privileges');
const notifications = require('../notifications');
const SocketGroups = module.exports;
@@ -74,6 +76,16 @@ SocketGroups.leave = async (socket, data) => {
}
await groups.leave(data.groupName, socket.uid);
const username = await user.getUserField(socket.uid, 'username');
const notification = await notifications.create({
type: 'group-leave',
bodyShort: '[[groups:membership.leave.notification_title, ' + username + ', ' + data.groupName + ']]',
nid: 'group:' + validator.escape(data.groupName) + ':uid:' + socket.uid + ':group-leave',
path: '/groups/' + utils.slugify(data.groupName),
});
const uids = await groups.getOwners(data.groupName);
await notifications.push(notification, uids);
logGroupEvent(socket, 'group-leave', {
groupName: data.groupName,
});