37 lines
1011 B
SQL
37 lines
1011 B
SQL
-- name: GetUserRolesByUserID :many
|
|
SELECT ur.*, r.name AS role_name, r.description AS role_description
|
|
FROM user_roles ur
|
|
JOIN roles r ON r.id = ur.role_id
|
|
WHERE ur.user_id = sqlc.arg(user_id)
|
|
ORDER BY ur.assigned_at DESC;
|
|
|
|
-- name: GetUserRolesByRoleID :many
|
|
SELECT ur.*, u.username, u.email, u.full_name
|
|
FROM user_roles ur
|
|
JOIN users u ON u.id = ur.user_id
|
|
WHERE ur.role_id = sqlc.arg(role_id)
|
|
ORDER BY ur.assigned_at DESC;
|
|
|
|
-- name: GetUserRole :one
|
|
SELECT * FROM user_roles
|
|
WHERE user_id = sqlc.arg(user_id) AND role_id = sqlc.arg(role_id);
|
|
|
|
-- name: AssignRoleToUser :one
|
|
INSERT INTO user_roles (user_id, role_id)
|
|
VALUES (
|
|
sqlc.arg(user_id),
|
|
sqlc.arg(role_id))
|
|
RETURNING *;
|
|
|
|
-- name: RemoveRoleFromUser :exec
|
|
DELETE FROM user_roles
|
|
WHERE user_id = sqlc.arg(user_id) AND role_id = sqlc.arg(role_id);
|
|
|
|
-- name: RemoveAllRolesFromUser :exec
|
|
DELETE FROM user_roles
|
|
WHERE user_id = sqlc.arg(user_id);
|
|
|
|
-- name: CountUsersByRoleID :one
|
|
SELECT COUNT(*) FROM user_roles
|
|
WHERE role_id = sqlc.arg(role_id);
|