mirror of
https://codeberg.org/shroff/phylum.git
synced 2026-01-01 09:09:34 -06:00
64 lines
1.4 KiB
SQL
64 lines
1.4 KiB
SQL
-- name: CreateUser :one
|
|
INSERT INTO users(
|
|
username, display_name, password_hash, root, home
|
|
) VALUES (
|
|
$1, $2, $3, $4, $5
|
|
) RETURNING *;
|
|
|
|
-- name: UserByUsername :one
|
|
SELECT username, display_name, password_hash, root, home FROM users WHERE username = $1;
|
|
|
|
-- name: AllUsers :many
|
|
SELECT username, display_name, root, home from users WHERE deleted IS NULL;
|
|
|
|
-- name: UpdateUserDisplayName :exec
|
|
UPDATE users
|
|
SET
|
|
display_name = $1,
|
|
modified = NOW()
|
|
WHERE username = $2;
|
|
|
|
-- name: UpdateUserPasswordHash :exec
|
|
UPDATE users
|
|
SET
|
|
password_hash = $1,
|
|
modified = NOW()
|
|
WHERE username = $2;
|
|
|
|
-- name: UpdateUserRoot :exec
|
|
UPDATE users
|
|
SET
|
|
root = $1,
|
|
modified = NOW()
|
|
WHERE username = $2;
|
|
|
|
-- name: UpdateUserHome :exec
|
|
UPDATE users
|
|
SET
|
|
home = $1,
|
|
modified = NOW()
|
|
WHERE username = $2;
|
|
|
|
-- name: ListBookmarks :many
|
|
WITH ids(id) AS(
|
|
SELECT jsonb_array_elements_text(bookmarks)::uuid
|
|
FROM users
|
|
WHERE username = @username::text
|
|
) SELECT r.*
|
|
FROM ids i
|
|
JOIN resources r
|
|
ON i.id = r.id;
|
|
|
|
-- name: AddBookmark :exec
|
|
UPDATE users
|
|
SET
|
|
bookmarks = CASE WHEN bookmarks ? (@id::uuid)::text THEN bookmarks ELSE bookmarks || to_jsonb(array[@id::uuid]) END,
|
|
modified = NOW()
|
|
WHERE username = @username::text;
|
|
|
|
-- name: RemoveBookmark :exec
|
|
UPDATE users
|
|
SET
|
|
bookmarks = bookmarks - (@id::uuid)::text,
|
|
modified = NOW()
|
|
WHERE username = @username::text; |