42 lines
924 B
SQL
42 lines
924 B
SQL
-- name: CreateRefreshToken :one
|
|
INSERT INTO refresh_tokens (user_id, token_hash, expires_at)
|
|
VALUES ($1, $2, $3)
|
|
RETURNING *;
|
|
|
|
-- name: GetRefreshToken :one
|
|
SELECT * FROM refresh_tokens
|
|
WHERE token_hash = $1 LIMIT 1;
|
|
|
|
-- name: GetUserRefreshTokens :many
|
|
SELECT * FROM refresh_tokens
|
|
WHERE user_id = $1;
|
|
|
|
-- name: CountUserRefreshTokens :one
|
|
SELECT count(*) FROM refresh_tokens
|
|
WHERE user_id = $1;
|
|
|
|
-- name: GetValidRefreshToken :one
|
|
SELECT user_id, token_hash
|
|
FROM refresh_tokens
|
|
WHERE token_hash = $1
|
|
AND expires_at > NOW()
|
|
LIMIT 1;
|
|
|
|
-- name: DeleteRefreshToken :exec
|
|
DELETE FROM refresh_tokens
|
|
WHERE token_hash = $1 and user_id = $2;
|
|
|
|
-- name: DeleteAllUserRefreshTokens :exec
|
|
DELETE FROM refresh_tokens
|
|
WHERE user_id = $1;
|
|
|
|
-- name: DeleteOldestRefreshToken :exec
|
|
DELETE FROM refresh_tokens
|
|
WHERE id = (
|
|
SELECT id
|
|
FROM refresh_tokens rt
|
|
WHERE rt.user_id = $1
|
|
ORDER BY rt.created_at ASC
|
|
LIMIT 1
|
|
);
|