feat: #9511 send notifications on accept/reject

This commit is contained in:
Barış Soner Uşaklı
2021-04-26 14:50:44 -04:00
parent 2bfa63aecf
commit b40fc4b64d
4 changed files with 32 additions and 6 deletions

View File

@@ -7,6 +7,7 @@ const plugins = require('../plugins');
const meta = require('../meta');
const topics = require('../topics');
const user = require('../user');
const notifications = require('../notifications');
const socketHelpers = require('./helpers');
const utils = require('../utils');
const api = require('../api');
@@ -130,11 +131,13 @@ SocketPosts.getReplies = async function (socket, pid) {
};
SocketPosts.accept = async function (socket, data) {
await acceptOrReject(posts.submitFromQueue, socket, data);
const result = await acceptOrReject(posts.submitFromQueue, socket, data);
await sendQueueNotification('post-queue-accepted', result.uid, `/post/${result.pid}`);
};
SocketPosts.reject = async function (socket, data) {
await acceptOrReject(posts.removeFromQueue, socket, data);
const result = await acceptOrReject(posts.removeFromQueue, socket, data);
await sendQueueNotification('post-queue-rejected', result.uid, '/');
};
async function acceptOrReject(method, socket, data) {
@@ -142,7 +145,18 @@ async function acceptOrReject(method, socket, data) {
if (!canEditQueue) {
throw new Error('[[error:no-privileges]]');
}
await method(data.id);
return await method(data.id);
}
async function sendQueueNotification(type, targetUid, path) {
const notifObj = await notifications.create({
type: type,
nid: `${type}-${targetUid}-${path}`,
bodyShort: type === 'post-queue-accepted' ?
'[[notifications:post-queue-accepted]]' : '[[notifications:post-queue-rejected]]',
path: path,
});
await notifications.push(notifObj, [targetUid]);
}
SocketPosts.editQueuedContent = async function (socket, data) {