Files
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

3.4 KiB

Add Auto-Assign Rule

Add an automatic book assignment rule to a collection.

Endpoint: POST /api/collections/{id}/rules Auth: Required Content-Type: application/json

Path Parameters

Parameter Type Required Description
id string (UUID) Yes Collection UUID

Request Body

Field Type Required Description
field string Yes Field to match on (genre, author, series, language, publisher, copyright_year, tags)
operator string Yes Comparison operator (equals, not_equals, contains, not_contains, starts_with, ends_with, greater_than, less_than)
value string/number Yes Value to compare against
priority integer No Rule priority (1 = highest, default: 1)
enabled boolean No Whether rule is active (default: true)

Supported Fields

Field Type Description
genre string Book genre
author string Book author
series string Book series name
language string Book language
publisher string Publisher name
copyright_year number Publication year (numeric comparison)
tags string Book tags

Supported Operators

Operator Type Description
equals all Exact match
not_equals all Not equal
contains string Contains substring (case-insensitive)
not_contains string Does not contain
starts_with string Starts with (case-insensitive)
ends_with string Ends with (case-insensitive)
greater_than number Greater than
less_than number Less than

Example Request

{
  "field": "genre",
  "operator": "equals",
  "value": "Science Fiction",
  "priority": 1,
  "enabled": true
}

Response (201 Created)

{
  "id": "rule-uuid-here",
  "field": "genre",
  "operator": "equals",
  "value": "Science Fiction",
  "priority": 1,
  "enabled": true,
  "created_at": "2026-02-01T10:00:00Z"
}

Error Responses

Code Description
400 Invalid request (validation failed)
401 Authentication required
404 Collection not found
500 Internal server error

Try It Out