xtablo-source/backend/internal/db/queries/users.sql

38 lines
941 B
MySQL
Raw Normal View History

-- name: InsertUser :one
INSERT INTO users (email, password_hash)
VALUES ($1, $2)
RETURNING id, email, password_hash, created_at, updated_at;
-- name: InsertSocialUser :one
INSERT INTO users (email, password_hash)
VALUES ($1, NULL)
RETURNING id, email, password_hash, created_at, updated_at;
-- name: GetUserByEmail :one
SELECT id, email, password_hash, created_at, updated_at
FROM users
WHERE email = $1;
-- name: GetUserByID :one
SELECT id, email, password_hash, created_at, updated_at
FROM users
WHERE id = $1;
-- name: IsSocialOnlyUserByEmail :one
SELECT EXISTS (
SELECT 1
FROM users
WHERE email = $1
AND password_hash IS NULL
)::boolean;
-- name: UpdateUserEmailIfAvailable :one
UPDATE users AS u
SET email = $2,
updated_at = now()
WHERE u.id = $1
AND NOT EXISTS (
SELECT 1 FROM users AS u2 WHERE u2.email = $2 AND u2.id <> u.id
)
RETURNING u.id, u.email, u.password_hash, u.created_at, u.updated_at;