mirror of
https://github.com/zoriya/Kyoo.git
synced 2025-05-24 02:02:36 -04:00
85 lines
1.1 KiB
SQL
85 lines
1.1 KiB
SQL
-- name: GetAllUsers :many
|
|
select
|
|
*
|
|
from
|
|
users
|
|
order by
|
|
id
|
|
limit $1;
|
|
|
|
-- name: GetAllUsersAfter :many
|
|
select
|
|
*
|
|
from
|
|
users
|
|
where
|
|
id >= sqlc.arg(after_id)
|
|
order by
|
|
id
|
|
limit $1;
|
|
|
|
-- name: GetUser :many
|
|
select
|
|
sqlc.embed(u),
|
|
h.provider,
|
|
h.id,
|
|
h.username,
|
|
h.profile_url
|
|
from
|
|
users as u
|
|
left join oidc_handle as h on u.pk = h.user_pk
|
|
where
|
|
u.id = $1;
|
|
|
|
-- name: GetUserByLogin :one
|
|
select
|
|
*
|
|
from
|
|
users
|
|
where
|
|
email = sqlc.arg(login)
|
|
or username = sqlc.arg(login)
|
|
limit 1;
|
|
|
|
-- name: TouchUser :exec
|
|
update
|
|
users
|
|
set
|
|
last_used = now()::timestamptz
|
|
where
|
|
id = $1;
|
|
|
|
-- name: CreateUser :one
|
|
insert into users(username, email, password, claims)
|
|
values ($1, $2, $3, case when not exists (
|
|
select
|
|
*
|
|
from
|
|
users) then
|
|
sqlc.arg(first_claims)::jsonb
|
|
else
|
|
sqlc.arg(claims)::jsonb
|
|
end)
|
|
returning
|
|
*;
|
|
|
|
-- name: UpdateUser :one
|
|
update
|
|
users
|
|
set
|
|
username = coalesce(sqlc.narg(username), username),
|
|
email = coalesce(sqlc.narg(email), email),
|
|
password = coalesce(sqlc.narg(password), password),
|
|
claims = coalesce(sqlc.narg(claims), claims)
|
|
where
|
|
id = $1
|
|
returning
|
|
*;
|
|
|
|
-- name: DeleteUser :one
|
|
delete from users
|
|
where id = $1
|
|
returning
|
|
*;
|
|
|