forked from wrenn/wrenn
Add DB queries for account self-service
New queries: UpdateUserPassword, SoftDeleteUser, HardDeleteExpiredUsers, CountUserOwnedTeamsWithOtherMembers, GetOAuthProvidersByUserID, DeleteOAuthProvider.
This commit is contained in:
@ -5,3 +5,9 @@ VALUES ($1, $2, $3, $4);
|
||||
-- name: GetOAuthProvider :one
|
||||
SELECT * FROM oauth_providers
|
||||
WHERE provider = $1 AND provider_id = $2;
|
||||
|
||||
-- name: GetOAuthProvidersByUserID :many
|
||||
SELECT * FROM oauth_providers WHERE user_id = $1;
|
||||
|
||||
-- name: DeleteOAuthProvider :exec
|
||||
DELETE FROM oauth_providers WHERE user_id = $1 AND provider = $2;
|
||||
|
||||
@ -66,3 +66,22 @@ WHERE deleted_at IS NULL;
|
||||
|
||||
-- name: SetUserActive :exec
|
||||
UPDATE users SET is_active = $2, updated_at = NOW() WHERE id = $1;
|
||||
|
||||
-- name: UpdateUserPassword :exec
|
||||
UPDATE users SET password_hash = $2, updated_at = NOW() WHERE id = $1;
|
||||
|
||||
-- name: SoftDeleteUser :exec
|
||||
UPDATE users SET deleted_at = NOW(), is_active = false, updated_at = NOW() WHERE id = $1;
|
||||
|
||||
-- name: CountUserOwnedTeamsWithOtherMembers :one
|
||||
SELECT COUNT(DISTINCT ut.team_id)::int
|
||||
FROM users_teams ut
|
||||
WHERE ut.user_id = $1
|
||||
AND ut.role = 'owner'
|
||||
AND EXISTS (
|
||||
SELECT 1 FROM users_teams ut2
|
||||
WHERE ut2.team_id = ut.team_id AND ut2.user_id <> $1
|
||||
);
|
||||
|
||||
-- name: HardDeleteExpiredUsers :exec
|
||||
DELETE FROM users WHERE deleted_at IS NOT NULL AND deleted_at < NOW() - INTERVAL '15 days';
|
||||
|
||||
Reference in New Issue
Block a user