summaryrefslogtreecommitdiff
path: root/query
diff options
context:
space:
mode:
authorKyren223 <Kyren223@proton.me>2024-11-23 20:27:10 +0200
committerKyren223 <Kyren223@proton.me>2024-11-23 20:27:10 +0200
commitb67ab26b89e16d4492145702b0ef899d3d6b7416 (patch)
tree457e88f976e1812a01face1c0096b826ac6d8805 /query
parent77d9971982e336aa6c0b816d84f2d37780c02de6 (diff)
Added frequency queries
Diffstat (limited to 'query')
-rw-r--r--query/frequencies.sql18
-rw-r--r--query/networks.sql9
-rw-r--r--query/users.sql5
3 files changed, 24 insertions, 8 deletions
diff --git a/query/frequencies.sql b/query/frequencies.sql
index ed68c78..959512e 100644
--- a/query/frequencies.sql
+++ b/query/frequencies.sql
@@ -5,8 +5,22 @@ ORDER BY id;
-- name: CreateFrequency :one
INSERT INTO frequencies (
- id, network_id, name
+ id, network_id,
+ name, hex_color,
+ perms, position
) VALUES (
- ?, ?, ?
+ ?, @network_id, ?, ?, ?,
+ (SELECT COUNT(*) FROM frequencies WHERE network_id = @network_id)
)
RETURNING *;
+
+-- name: SwapFrequencies :exec
+UPDATE frequencies SET
+ position = CASE
+ WHEN position = @pos1 THEN @pos2
+ WHEN position = @pos2 THEN @pos1
+ END
+WHERE network_id = ? AND position IN (@pos1, @pos2);
+
+-- name: DeleteFrequency :exec
+DELETE FROM frequencies WHERE id = ?;
diff --git a/query/networks.sql b/query/networks.sql
index 424bb2d..2253de4 100644
--- a/query/networks.sql
+++ b/query/networks.sql
@@ -6,7 +6,7 @@ WHERE is_public = true;
SELECT * FROM networks
WHERE id = ?;
--- -- name: CreateNetwork :one
+-- name: CreateNetwork :one
INSERT INTO networks (
id, owner_id, name, is_public,
icon, bg_hex_color, fg_hex_color
@@ -16,7 +16,7 @@ INSERT INTO networks (
RETURNING *;
-- name: GetBannedUsersInNetwork :many
-SELECT
+SELECT
sqlc.embed(users),
network_banned_users.banned_at,
network_banned_users.reason
@@ -26,10 +26,13 @@ WHERE network_banned_users.network_id = ?;
-- name: GetUsersInNetwork :many
SELECT
- sqlc.embed(users.),
+ sqlc.embed(users),
users_networks.joined_at,
users_networks.is_admin,
users_networks.is_muted
FROM users_networks
JOIN users ON users.id = users_networks.user_id
WHERE users_networks.network_id = ?;
+
+-- name: DeleteNetwork :exec
+DELETE FROM networks WHERE id = ?;
diff --git a/query/users.sql b/query/users.sql
index f3629ca..d136f15 100644
--- a/query/users.sql
+++ b/query/users.sql
@@ -42,8 +42,7 @@ UPDATE users SET
WHERE id = ? AND is_deleted = false
RETURNING *;
--- name: DeleteUser :one
+-- name: DeleteUser :exec
UPDATE users SET
is_deleted = true
-WHERE id = ? AND is_deleted = false
-RETURNING *;
+WHERE id = ? AND is_deleted = false;