diff options
| author | Kyren223 <Kyren223@proton.me> | 2025-02-05 19:41:34 +0200 |
|---|---|---|
| committer | Kyren223 <Kyren223@proton.me> | 2025-02-05 19:41:34 +0200 |
| commit | 0bf5515629f1cfe1557dba4f8d588ac64b77d408 (patch) | |
| tree | 2bfc56b990c6edd6bab6ddf7b10964b0efb1dbcb /internal/server/api/helpers.go | |
| parent | 8a8c4e9abc1006da92969e0234bb2d42f587c149 (diff) | |
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
Diffstat (limited to 'internal/server/api/helpers.go')
| -rw-r--r-- | internal/server/api/helpers.go | 7 |
1 files changed, 4 insertions, 3 deletions
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; ` |
