- Update Combined Search and Filters to use tags_filter - Update Field Values Search to cover tags autocomplete - Add fuzzy matching examples for tags - Update search scenarios to use tags instead of genre Updates the Bruno API test collection to use the new tags filter instead of the genre filter, including fuzzy matching examples. Relates to IMPLEMENTATION_TAGS_FILTER.md Phase 6
64 lines
2.1 KiB
YAML
64 lines
2.1 KiB
YAML
info:
|
|
name: List Media Items with Sorting
|
|
type: http
|
|
seq: 1
|
|
http:
|
|
method: GET
|
|
url: '{{base_url}}/api/media-items?library_id={{library_id}}&sort=title+ASC&limit=10&offset=0'
|
|
auth: inherit
|
|
body:
|
|
type: none
|
|
headers:
|
|
- key: Content-Type
|
|
value: application/json
|
|
|
|
docs: |-
|
|
## List Media Items with Sorting
|
|
|
|
**Method:** GET
|
|
|
|
**Endpoint:** /api/media-items
|
|
|
|
**Authentication:** Required (Bearer token)
|
|
|
|
**Query Parameters:**
|
|
- `library_id` (string, required): UUID of the library
|
|
- `sort` (string, optional): Sort field and direction
|
|
- Available options:
|
|
- `created_at ASC` - Oldest added first
|
|
- `created_at DESC` - Newest added first (default)
|
|
- `title ASC` - Title A-Z
|
|
- `title DESC` - Title Z-A
|
|
- `author ASC` - Author A-Z
|
|
- `author DESC` - Author Z-A
|
|
- `series ASC` - Series order
|
|
- `series DESC` - Series reverse order
|
|
- `date_published ASC` - Oldest published first
|
|
- `date_published DESC` - Newest published first
|
|
- `copyright_year ASC` - Oldest copyright first
|
|
- `copyright_year DESC` - Newest copyright first
|
|
- `page_count ASC` - Shortest first
|
|
- `page_count DESC` - Longest first
|
|
- `tags ASC` - Genre A-Z
|
|
- `tags DESC` - Genre Z-A
|
|
- `limit` (integer, optional): Number of items to return (default: 50, max: 1000)
|
|
- `offset` (integer, optional): Number of items to skip (default: 0)
|
|
|
|
**Response:** Object containing array of media items
|
|
|
|
**Status Codes:**
|
|
- 200: Success
|
|
- 400: Bad request (invalid parameters)
|
|
- 401: Unauthorized
|
|
- 500: Internal server error
|
|
|
|
**Examples:**
|
|
- Sort by title: `/api/media-items?library_id=xxx&sort=title+ASC`
|
|
- Sort by author descending: `/api/media-items?library_id=xxx&sort=author+DESC`
|
|
- Sort by page count: `/api/media-items?library_id=xxx&sort=page_count+ASC`
|
|
|
|
**Sorting Behavior:**
|
|
- All sorts are secondary-sorted by series_number then title for consistency
|
|
- NULL values are sorted last for ascending, first for descending
|
|
- Sorting is case-insensitive for text fields
|