feat: add user preferences dashboard
- Add /preferences route and preferences.html template for user settings - Implement username, email, password, and theme update functionality - Add account deletion feature with confirmation - Add navigation link to preferences from dashboard - Create API endpoints: - PUT /api/user/username - Update username - PUT /api/user/email - Update email address - PUT /api/user/password - Change password with verification - DELETE /api/user/account - Delete user account - Add database queries for user updates and account deletion - Create Bruno API testing files for all user preference endpoints - Add proper validation, error handling, and security checks
This commit is contained in:
@@ -15,6 +15,9 @@ SELECT * FROM users WHERE email = $1 OR username = $1;
|
||||
-- name: GetUser :one
|
||||
SELECT id, email, username, theme, created_at, updated_at FROM users WHERE id = $1;
|
||||
|
||||
-- name: GetUserPasswordHash :one
|
||||
SELECT password_hash FROM users WHERE id = $1;
|
||||
|
||||
-- name: ListUsers :many
|
||||
SELECT id, email, username, theme, created_at, updated_at FROM users ORDER BY created_at DESC;
|
||||
|
||||
@@ -69,6 +72,18 @@ DELETE FROM reading_progress WHERE ebook_id = $1 AND user_id = $2;
|
||||
-- name: UpdateUserTheme :exec
|
||||
UPDATE users SET theme = $2, updated_at = NOW() WHERE id = $1;
|
||||
|
||||
-- name: UpdateUsername :exec
|
||||
UPDATE users SET username = $2, updated_at = NOW() WHERE id = $1;
|
||||
|
||||
-- name: UpdateEmail :exec
|
||||
UPDATE users SET email = $2, updated_at = NOW() WHERE id = $1;
|
||||
|
||||
-- name: UpdatePassword :exec
|
||||
UPDATE users SET password_hash = $2, updated_at = NOW() WHERE id = $1;
|
||||
|
||||
-- name: DeleteUser :exec
|
||||
DELETE FROM users WHERE id = $1;
|
||||
|
||||
-- name: CreateEbookRating :one
|
||||
INSERT INTO ebook_ratings (ebook_id, user_id, rating)
|
||||
VALUES ($1, $2, $3)
|
||||
|
||||
Reference in New Issue
Block a user