summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKyren223 <Kyren223@proton.me>2024-11-23 22:41:28 +0200
committerKyren223 <Kyren223@proton.me>2024-11-23 22:41:28 +0200
commit91bbd29dbe2738459cef83b5204844a2c136a84f (patch)
treee82c735f10b75ae1dc7072d3ecb35cc3a4e645a6
parent7894503e7a5de54b2b6788822d248172ed1ca141 (diff)
Added message queries
-rw-r--r--migrations/20241026174345_init.sql4
-rw-r--r--query/messages.sql14
2 files changed, 17 insertions, 1 deletions
diff --git a/migrations/20241026174345_init.sql b/migrations/20241026174345_init.sql
index 233ceba..366d338 100644
--- a/migrations/20241026174345_init.sql
+++ b/migrations/20241026174345_init.sql
@@ -77,6 +77,8 @@ CREATE INDEX idx_network_name ON networks (name) WHERE is_public = 1;
CREATE INDEX idx_frequency_network ON frequencies (network_id);
CREATE INDEX idx_blocked_by_user ON user_blocked_users (blocker_user_id);
CREATE INDEX idx_banned_by_network ON network_banned_users (network_id);
+CREATE INDEX idx_direct_messages ON messages (sender_id, receiver_id);
+CREATE INDEX idx_frequency_messages ON messages (frequency_id);
-- +goose StatementBegin
CREATE TRIGGER on_user_delete
@@ -115,3 +117,5 @@ DROP INDEX idx_network_name;
DROP INDEX idx_frequency_network;
DROP INDEX idx_blocked_by_user;
DROP INDEX idx_banned_by_network;
+DROP INDEX idx_direct_messages;
+DROP INDEX idx_frequency_messages;
diff --git a/query/messages.sql b/query/messages.sql
index c345068..f7be629 100644
--- a/query/messages.sql
+++ b/query/messages.sql
@@ -1,5 +1,13 @@
--- name: ListMessages :many
+-- name: GetFrequencyMessages :many
SELECT * FROM messages
+WHERE frequency_id = ?
+ORDER BY id;
+
+-- name: GetDirectMessages :many
+SELECT * FROM messages
+WHERE
+ (sender_id = @user1 AND receiver_id = @user2) OR
+ (sender_id = @user2 AND receiver_id = @user1)
ORDER BY id;
-- name: CreateMessage :one
@@ -16,3 +24,7 @@ UPDATE messages SET
content = ?
WHERE id = ?
RETURNING *;
+
+-- name: DeleteMessage :exec
+DELETE FROM messages
+WHERE id = ?;