From 0bf5515629f1cfe1557dba4f8d588ac64b77d408 Mon Sep 17 00:00:00 2001 From: Kyren223 Date: Wed, 5 Feb 2025 19:41:34 +0200 Subject: When a user sends a message "signal" and the receiving user doesn't have the signal already open, it will be added as the first signal --- internal/server/api/helpers.go | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'internal/server/api/helpers.go') diff --git a/internal/server/api/helpers.go b/internal/server/api/helpers.go index 2daeb9f..4327a49 100644 --- a/internal/server/api/helpers.go +++ b/internal/server/api/helpers.go @@ -151,15 +151,16 @@ SELECT e.source_id, e.last_read, CASE WHEN COUNT(m.id) = 0 THEN NULL - ELSE SUM(CASE WHEN (m.ping = 0 OR (m.ping = 1 AND pf.is_admin = true) OR m.ping = ?) THEN 1 ELSE 0 END) + ELSE SUM(CASE WHEN (m.frequency_id IS NULL OR + m.ping = 0 OR (m.ping = 1 AND pf.is_admin = true) OR m.ping = ?) THEN 1 ELSE 0 END) -- 0 is @everyone, 1 is @admins, otherwise it's user_id END AS pings FROM entries e +LEFT JOIN permitted_frequencies pf ON e.source_id = pf.id LEFT JOIN messages m ON m.id > e.last_read - AND (m.frequency_id = e.source_id OR + AND ((m.frequency_id = e.source_id AND pf.id IS NOT NULL) OR (m.receiver_id = e.source_id AND m.sender_id = ?) OR (m.sender_id = e.source_id AND m.receiver_id = ?)) -JOIN permitted_frequencies pf ON e.source_id = pf.id GROUP BY e.source_id, e.last_read; ` -- cgit v1.3.1