Files
bookhoard/docs/developer/api/users/update_profile.md
john-okeefe 4d321528b2 docs: update comprehensive API documentation and project guides
This commit updates all documentation files throughout the project:

- Updated IMPLEMENTATION_PLAN.md with new implementation details
- Updated PROJECT_GUIDELINES.md with coding standards and practices
- Updated README.md with current project information
- Updated SCREENSHOT_AUTOMATION.md with new automation details
- Added TEST_DATA.md with test fixtures data
- Updated cover_image_serving_plan.md with static URL patterns

Documentation API updates:
- Updated API reference documentation for all endpoints including:
  - Authentication (login, logout, register, refresh_token)
  - Book matching (auto_link, bulk_link, link_book, search)
  - Collections (CRUD operations, shelf mappings, auto-assign rules)
  - Conflicts (bulk operations, resolve/dismiss)
  - Devices (registration, approval, shelf management)
  - Highlights (create, update, delete, get)
  - Kobo sync (bookmark, markup, initialization, sync)
  - KOReader sync (library, metadata, bookmarks, progress)
  - Libraries (CRUD, folders, media items, stats)
  - Media items (bulk operations, CRUD)
  - Notes (CRUD operations)
  - OPDS (acquisition, feeds, publication)
  - Progress (reading progress tracking)
  - Queue (device queue management)
  - Ratings (star ratings)
  - Scanner (watch mode, scan operations)
  - Sync protocols (Kobo, KOReader)
  - Users (profile, password, admin operations)
  - WebSocket protocols

- Updated user guides (admin, dashboard, settings, sync)
- Updated device setup guides (Kobo, KOReader)
- Updated developer guides (testing, contributing, operations)
- Updated scripts/README.md
2026-02-27 17:06:22 -05:00

2.2 KiB

Update Profile

Update user profile information. Supports both self-edit and admin modes.

Endpoints:

  • Self-edit: PUT /api/auth/profile
  • Admin edit: PUT /api/auth/profile/:id

Auth: Required Content-Type: application/json

Self-Edit Mode

Users can update their own profile. All fields are optional.

Request Body

Field Type Required Description
username string No New username (must be unique, 3-50 chars)
email string No New email (must be unique, valid format)
first_name string No User's first name
last_name string No User's last name
theme string No Theme preference

Example Request

{
  "username": "newusername",
  "email": "newemail@example.com",
  "first_name": "John",
  "last_name": "Smith",
  "theme": "dracula"
}

Admin Mode

Admins can update any user by providing the user ID in the URL. Additionally supports role changes.

URL Parameter: :id - Target user's UUID

Additional Request Body Fields (Admin Only)

Field Type Required Description
role string No New role: "user" or "admin"

Example Admin Request

{
  "username": "newusername",
  "email": "newemail@example.com",
  "role": "admin"
}

Response (200 OK)

{
  "id": "uuid",
  "email": "user@example.com",
  "username": "john",
  "first_name": "John",
  "last_name": "Smith",
  "theme": "dracula",
  "role": "user",
  "max_devices": 10,
  "created_at": "2026-01-31T10:00:00Z"
}

Error Responses

Code Description
400 Invalid input data or invalid role
401 Invalid or expired token
403 Admin access required (admin mode only)
404 User not found (admin mode only)
409 Username or email already taken