Files
hspguard/queries/user_sessions.sql

41 lines
870 B
SQL

-- name: CreateUserSession :one
INSERT INTO user_sessions (
user_id, session_type, issued_at, expires_at, last_active,
ip_address, user_agent,
device_info, is_active
) VALUES (
$1, $2, NOW(), $3, $4,
$5, $6,
$7, TRUE
)
RETURNING *;
-- name: ListActiveUserSessions :many
SELECT * FROM user_sessions
WHERE user_id = $1
AND is_active = TRUE
ORDER BY issued_at DESC;
-- name: GetUserSessionByToken :one
SELECT * FROM user_sessions
WHERE refresh_token = $1
AND is_active = TRUE;
-- name: RevokeUserSession :exec
UPDATE user_sessions
SET is_active = FALSE,
revoked_at = NOW()
WHERE id = $1
AND is_active = TRUE;
-- name: UpdateSessionLastActive :exec
UPDATE user_sessions
SET last_active = NOW()
WHERE id = $1
AND is_active = TRUE;
-- name: ListAllSessions :many
SELECT * FROM user_sessions
ORDER BY issued_at DESC
LIMIT $1 OFFSET $2;