mirror of
https://github.com/zoriya/Kyoo.git
synced 2025-05-24 02:02:36 -04:00
52 lines
829 B
SQL
52 lines
829 B
SQL
-- name: GetUserFromToken :one
|
|
select
|
|
s.pk,
|
|
s.id,
|
|
s.last_used,
|
|
sqlc.embed(u)
|
|
from
|
|
users as u
|
|
inner join sessions as s on u.pk = s.user_pk
|
|
where
|
|
s.token = $1
|
|
limit 1;
|
|
|
|
-- name: TouchSession :exec
|
|
update
|
|
sessions
|
|
set
|
|
last_used = now()::timestamptz
|
|
where
|
|
pk = $1;
|
|
|
|
-- name: GetUserSessions :many
|
|
select
|
|
s.*
|
|
from
|
|
sessions as s
|
|
inner join users as u on u.pk = s.user_pk
|
|
where
|
|
u.pk = $1
|
|
order by
|
|
last_used;
|
|
|
|
-- name: CreateSession :one
|
|
insert into sessions(token, user_pk, device)
|
|
values ($1, $2, $3)
|
|
returning
|
|
*;
|
|
|
|
-- name: DeleteSession :one
|
|
delete from sessions as s using users as u
|
|
where s.user_pk = u.pk
|
|
and s.id = $1
|
|
and u.id = sqlc.arg(user_id)
|
|
returning
|
|
s.*;
|
|
|
|
-- name: ClearOtherSessions :exec
|
|
delete from sessions as s using users as u
|
|
where s.user_pk = u.pk
|
|
and s.id != @session_id
|
|
and u.id = @user_id;
|