Files
bookhoard/bruno/media-items/Field Values Search - Languages.yml
T
john-okeefe 74009f66b5 refactor: restructure Bruno API collection for consistency
Standardize all Bruno API request files with consistent formatting and
structure to improve maintainability and readability.

Changes include:
- Consolidate URL parameters into main URL instead of separate definitions
- Standardize quote style (double quotes throughout)
- Add proper settings section with defaults (timeout, redirects, etc.)
- Improve YAML formatting with literal style for multi-line content
- Remove redundant fields (disabled: false)
- Clean up header and body structure
- Update sequence numbers for better organization
- Add scenarios folder structure for organized test groupings

Removes obsolete Search Invalid Library ID test case.

Environment configuration updated with new library_id for testing.

These changes improve the Bruno collection's maintainability and make
it easier to create new API requests following established patterns.
2026-03-25 18:03:00 -04:00

90 lines
2.3 KiB
YAML

info:
name: Field Values Search - Languages
type: http
seq: 8
http:
method: GET
url: "{{base_url}}/api/media-items/search?library_id={{library_id}}&language=eng&limit=50"
params:
- name: library_id
value: "{{library_id}}"
type: query
- name: language
value: eng
type: query
- name: limit
value: "50"
type: query
auth: inherit
settings:
encodeUrl: true
timeout: 0
followRedirects: true
maxRedirects: 5
docs: |-
## Field Values Search - Languages
Fetches distinct language values for autocomplete dropdowns with counts and similarity scores.
**Method:** GET
**Endpoint:** /api/media-items/search
**Authentication:** Required (Bearer token)
**Query Parameters:**
- `library_id` (string, required): Library UUID to search within
- `language` (string, required): Language name/code to search for (fuzzy match)
- `limit` (integer, optional): Maximum results to return (default: 50)
**How It Works:**
- Returns distinct language names from the library
- Fuzzy matches the search query against language names
- Includes count of books per language
- Includes similarity score (0-1, higher = better match)
- Sorted by similarity score, then by count
**Use Case:**
- Populate autocomplete dropdown when user types in language filter field
- Show user available languages with book counts
- Help users discover similar language codes/names
**Response:** HTTP 200 (OK)
```json
{
"results": [
{
"value": "English",
"count": 1245,
"score": 0.9
},
{
"value": "eng",
"count": 856,
"score": 0.85
}
],
"total": 2
}
```
**Examples:**
- `language=eng` → Returns "English" (1245 books), "eng" (856 books)
- `language=fre` → Returns "French" (234 books), "fre" (123 books)
- `language=german` → Returns "German" (189 books), "deutsch" (45 books)
**Frontend Integration:**
- Call this endpoint when user types ≥2 characters in language field
- Display results in `<datalist>` or custom dropdown
- Show: "Language Name (count)" format
- Allow user to select from suggestions
**Success Criteria:**
- Status: 200
- Returns array of language values with counts
- Results sorted by relevance (similarity score)
- Only returns languages matching the fuzzy search