tulip/database/queries/users.sql

73 lines
1.4 KiB
SQL

-- name: HasUser :one
SELECT cast(count(subject) AS BOOLEAN) AS hasUser
FROM users;
-- name: addUser :exec
INSERT INTO users (subject, name, username, password, email, email_verified, role, updated_at, active)
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?);
-- name: checkLogin :one
SELECT subject, password, EXISTS(SELECT 1 FROM otp WHERE otp.subject = users.subject), email, email_verified
FROM users
WHERE username = ?
LIMIT 1;
-- name: GetUser :one
SELECT *
FROM users
WHERE subject = ?
LIMIT 1;
-- name: GetUserRole :one
SELECT role
FROM users
WHERE subject = ?;
-- name: GetUserDisplayName :one
SELECT name
FROM users
WHERE subject = ?;
-- name: getUserPassword :one
SELECT password
FROM users
WHERE subject = ?;
-- name: changeUserPassword :execrows
UPDATE users
SET password = ?,
updated_at = ?
WHERE subject = ?
AND password = ?;
-- name: ModifyUser :execrows
UPDATE users
SET name = ?,
picture = ?,
website=?,
pronouns=?,
birthdate=?,
zoneinfo=?,
locale=?,
updated_at=?
WHERE subject = ?;
-- name: SetTwoFactor :exec
INSERT OR
REPLACE
INTO otp (subject, secret, digits)
VALUES (?, ?, ?);
-- name: DeleteTwoFactor :exec
DELETE
FROM otp
WHERE otp.subject = ?;
-- name: GetTwoFactor :one
SELECT secret, digits
FROM otp
WHERE subject = ?;
-- name: HasTwoFactor :one
SELECT cast(EXISTS(SELECT 1 FROM otp WHERE subject = ?) AS BOOLEAN);