31 lines
638 B
SQL
31 lines
638 B
SQL
-- Queries for User Management
|
|
|
|
-- name: CreateUser :one
|
|
INSERT INTO user (email, password, metadata)
|
|
VALUES (?, ?, ?)
|
|
RETURNING id;
|
|
|
|
-- name: CreateSession :exec
|
|
INSERT INTO sessions (user_id, session_id, expires_at)
|
|
VALUES (?, ?, ?);
|
|
|
|
-- name: GetUserByToken :one
|
|
SELECT u.*
|
|
FROM user u
|
|
JOIN sessions t ON u.id = t.user_id
|
|
WHERE t.session_id = ?
|
|
AND t.expires_at > datetime('now');
|
|
|
|
-- name: GetUserByID :one
|
|
SELECT *
|
|
FROM user
|
|
WHERE id = ?;
|
|
|
|
|
|
-- name: GetUserByEmail :one
|
|
SELECT *
|
|
FROM user
|
|
WHERE email = ?;
|
|
|
|
-- name: UpdateUserMetadata :exec
|
|
UPDATE user SET metadata = json_patch(COALESCE(metadata, '{}'), ?) WHERE id = ?;
|