You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Koito/db/queries/users.sql

46 lines
1.0 KiB

-- name: InsertUser :one
INSERT INTO users (username, password, role)
VALUES ($1, $2, $3)
RETURNING *;
-- name: DeleteUser :exec
DELETE FROM users WHERE id = $1;
-- name: GetUserByUsername :one
SELECT * FROM users WHERE username = $1;
-- name: CountUsers :one
SELECT COUNT(*) FROM users;
-- name: InsertApiKey :one
INSERT INTO api_keys (user_id, key, label)
VALUES ($1, $2, $3)
RETURNING *;
-- name: DeleteApiKey :exec
DELETE FROM api_keys WHERE id = $1;
-- name: CountApiKeys :one
SELECT COUNT(*) FROM api_keys WHERE user_id = $1;
-- name: GetUserByApiKey :one
SELECT u.*
FROM users u
JOIN api_keys ak ON u.id = ak.user_id
WHERE ak.key = $1;
-- name: GetAllApiKeysByUserID :many
SELECT ak.*
FROM api_keys ak
JOIN users u ON ak.user_id = u.id
WHERE u.id = $1;
-- name: UpdateUserUsername :exec
UPDATE users SET username = $2 WHERE id = $1;
-- name: UpdateUserPassword :exec
UPDATE users SET password = $2 WHERE id = $1;
-- name: UpdateApiKeyLabel :exec
UPDATE api_keys SET label = $3 WHERE id = $1 AND user_id = $2;