Files
nfeeder/sql/queries/refresh_tokens.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
);