Files
libredesk/internal/user/queries.sql
Abhinav Raut 98df9efd63 feat: adds dropdown to automation form fields
- feat: adds csrf token check
- feat: adds conversation sub and unsub for WS updates.
- Clean up and remove unncessary code
- refactor and simplify auth middlewares
- fix: automation rules
- Update schema.sql
2024-10-14 01:50:08 +05:30

77 lines
1.8 KiB
SQL

-- name: get-users
SELECT u.id, u.updated_at, u.first_name, u.last_name, u.email, u.disabled
FROM users u where u.email != 'System'
ORDER BY u.updated_at DESC;
-- name: get-users-compact
SELECT u.id, u.first_name, u.last_name, u.disabled
FROM users u where u.email != 'System'
ORDER BY u.updated_at DESC;
-- name: get-email
SELECT email from users where id = $1;
-- name: get-user-by-email
SELECT u.id, u.email, u.password, u.avatar_url, u.first_name, u.last_name, r.permissions
FROM users u
JOIN roles r ON r.name = ANY(u.roles)
WHERE u.email = $1;
-- name: get-user
SELECT
u.id,
u.email,
u.avatar_url,
u.first_name,
u.last_name,
u.roles,
COALESCE(
(SELECT json_agg(json_build_object('id', t.id, 'name', t.name))
FROM team_members tm
JOIN teams t ON tm.team_id = t.id
WHERE tm.user_id = u.id),
'[]'
) AS teams,
COALESCE(
ARRAY(
SELECT DISTINCT unnest(r.permissions)
FROM roles r
WHERE r.name = ANY(u.roles)
),
ARRAY[]::text[]
) AS permissions
FROM
users u
WHERE
u.id = $1;
-- name: set-user-password
update users set password = $1, updated_at = now() where id = $2;
-- name: create-user
INSERT INTO users
(email, first_name, last_name, "password", avatar_url, roles)
VALUES($1, $2, $3, $4, $5, $6)
RETURNING id;
-- name: update-user
UPDATE users
SET first_name = COALESCE($2, first_name),
last_name = COALESCE($3, last_name),
email = COALESCE($4, email),
roles = COALESCE($5, roles),
avatar_url = COALESCE($6, avatar_url),
password = COALESCE($7, password),
updated_at = now()
WHERE id = $1
-- name: update-avatar
UPDATE users
SET avatar_url = $2 WHERE id = $1;
-- name: get-permissions
SELECT unnest(r.permissions)
FROM users u
JOIN roles r ON r.name = ANY(u.roles)
WHERE u.id = $1