From 9f7f09378d396279903be11dd57784aef1e6758a Mon Sep 17 00:00:00 2001 From: ekzyis <27162016+ekzyis@users.noreply.github.com> Date: Wed, 20 Dec 2023 03:02:48 +0100 Subject: [PATCH] Consider mutes during push notifications (#697) Co-authored-by: ekzyis --- lib/push-notifications.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/push-notifications.js b/lib/push-notifications.js index 2f2b3af3..de4fa4f3 100644 --- a/lib/push-notifications.js +++ b/lib/push-notifications.js @@ -32,7 +32,8 @@ export const notifyItemParents = async ({ models, item, me }) => { try { const user = await models.user.findUnique({ where: { id: me?.id || ANON_USER_ID } }) const parents = await models.$queryRawUnsafe( - 'SELECT DISTINCT p."userId" FROM "Item" i JOIN "Item" p ON p.path @> i.path WHERE i.id = $1 and p."userId" <> $2', + 'SELECT DISTINCT p."userId" FROM "Item" i JOIN "Item" p ON p.path @> i.path WHERE i.id = $1 and p."userId" <> $2 ' + + 'AND NOT EXISTS (SELECT 1 FROM "Mute" m WHERE m."muterId" = p."userId" AND m."mutedId" = $2)', Number(item.parentId), Number(user.id)) Promise.allSettled( parents.map(({ userId }) => sendUserNotification(userId, {