48 lines
1.2 KiB
MySQL
48 lines
1.2 KiB
MySQL
|
-- name: CreateUser :one
|
||
|
insert into users (username, password) values (@username, @password)
|
||
|
returning *;
|
||
|
|
||
|
-- name: GetUser :one
|
||
|
select * from users where username = @username;
|
||
|
|
||
|
-- name: GetUsers :many
|
||
|
select * from users order by id;
|
||
|
|
||
|
-- name: UpdateUser :one
|
||
|
update users set
|
||
|
username = @username, password = @password, is_admin = @is_admin
|
||
|
where id = @id
|
||
|
returning *;
|
||
|
|
||
|
-- name: DeleteUser :exec
|
||
|
delete from users where id = @id;
|
||
|
|
||
|
-- name: GetUserByToken :one
|
||
|
select u.* from users u join tokens t on u.id = t.user_id
|
||
|
where t.token = @token;
|
||
|
|
||
|
-- name: CreateToken :one
|
||
|
insert into tokens (user_id, token) values (@user_id, @token)
|
||
|
returning *;
|
||
|
|
||
|
-- name: DeleteToken :exec
|
||
|
delete from tokens where id = @id;
|
||
|
|
||
|
-- name: CreateFile :one
|
||
|
insert into files
|
||
|
(id, user_id, filename, content_type, hash, size, created_at, expires)
|
||
|
values (@id, @user_id, @filename, @content_type, @hash, @size, unixepoch(), @expires)
|
||
|
returning *;
|
||
|
|
||
|
-- name: GetFileByID :one
|
||
|
select * from files where id = @id;
|
||
|
|
||
|
-- name: GetFileByName :one
|
||
|
select * from files where filename = @filename and hash = @hash;
|
||
|
|
||
|
-- name: GetExpiredFiles :many
|
||
|
select * from files where expires < unixepoch();
|
||
|
|
||
|
-- name: DeleteFile :exec
|
||
|
delete from files where id = @id;
|