1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
-- name: GetMembers :many
SELECT
sqlc.embed(users),
sqlc.embed(members)
FROM members
JOIN users ON users.id = members.user_id
WHERE network_id = ? AND is_member = true;
-- name: GetMemberById :one
SELECT * FROM members
WHERE network_id = ? AND user_id = ?;
-- name: GetNetworksOfUser :many
SELECT networks.* FROM networks
JOIN members ON networks.id = members.network_id
WHERE members.user_id = ?;
-- name: SetMember :one
INSERT INTO members (
user_id, network_id,
is_member, is_admin, is_muted,
is_banned, ban_reason
) VALUES (
@user_id, @network_id,
@is_member, @is_admin, @is_muted,
@is_banned, @ban_reason
)
ON CONFLICT DO
UPDATE SET
is_member = EXCLUDED.is_member, is_admin = EXCLUDED.is_admin, is_muted = EXCLUDED.is_muted,
is_banned = EXCLUDED.is_banned, ban_reason = EXCLUDED.ban_reason, position = EXCLUDED.position
WHERE user_id = EXCLUDED.user_id AND network_id = EXCLUDED.network_id
RETURNING *;
-- name: FilterUsersInNetwork :many
SELECT user_id FROM members
WHERE network_id = ? AND user_id IN (sqlc.slice('users'));
|