refactor: reorganize Bruno API collection into subdirectories

- Move search-related requests into bruno/media-items/search/ subdirectory
- Rename Fuzzy Genre Filter.yml to Fuzzy Tags Filter.yml
- Keep scenario-based requests in bruno/media-items/scenarios/
- Improve collection organization and discoverability

This reorganization makes the Bruno API collection more organized by
grouping search endpoints together and updating genre filter to tags filter.
This commit is contained in:
2026-03-25 20:40:25 -04:00
parent a64f14047d
commit f28dca1334
10 changed files with 0 additions and 0 deletions
@@ -0,0 +1,89 @@
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