docs(libraries): Work Order 3 batch 2 — 10 missing endpoints + array-response gate support
New frontmatter'd docs with handler-compatible shapes:
- get_library_types.md (public; []LibraryTypes)
- list_libraries.md (admin; {data: ListLibrariesRow})
- get_library_folders.md (admin; []LibraryFolders)
- list/get stats/resolve/delete processing issues (admin; family-lens 403s
documented)
- scan_library.md (202 + 409 coalescing with active_job_id)
- get/update scan-settings (ScanSettingsResponse)
Gate improvements forced by this batch:
- Array responses: registered slice -> doc example must be a JSON array; key
set compared against the element type
- RawMessage pins may now be arrays
- update scan-settings uses a RawMessage pin: handler always sets Message but
the struct's omitempty would reject correct docs via zero-value marshal
Registry: sqlc models pinned directly (LibraryTypes, LibraryFolders,
ListLibrariesRow — json tags verified in the generated code).
This commit is contained in:
1 parent
c4b62af213
commit
85cdaf7196
12 files changed
+423
-11
No files matched your search
@@ -0,0 +1,43 @@
|
||||
---
|
||||
method: GET
|
||||
path: /api/libraries
|
||||
auth: jwt+admin
|
||||
area: libraries
|
||||
---
|
||||
<!-- source: internal/handlers/library.go:102 LibraryHandler.ListLibraries -->
|
||||
|
||||
# List Libraries (Admin)
|
||||
|
||||
Lists **all** libraries regardless of per-user visibility. (Non-admin users
|
||||
see their subset via `GET /api/libraries/visibility`.)
|
||||
|
||||
## Example response
|
||||
|
||||
```json example-response
|
||||
{
|
||||
"data": [
|
||||
{
|
||||
"id": "990e8400-e29b-41d4-a716-446655440000",
|
||||
"name": "Manga",
|
||||
"description": null,
|
||||
"library_type_id": "880e8400-e29b-41d4-a716-446655440000",
|
||||
"created_by_admin_id": "92413c3a-e1b8-4fff-b3f9-95c74478d19a",
|
||||
"created_at": "2026-01-01T00:00:00Z",
|
||||
"updated_at": "2026-01-01T00:00:00Z",
|
||||
"type_name": "manga",
|
||||
"type_description": null
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
Nullable fields (`description`, `type_description`) are JSON `null` when
|
||||
unset. `type_name`/`type_description` come from the joined library type.
|
||||
|
||||
## Errors
|
||||
|
||||
| Status | Body | When |
|
||||
| ------ | ---- | ---- |
|
||||
| 401 | — | missing/invalid JWT |
|
||||
| 403 | — | not an admin |
|
||||
| 500 | `{"error": "..."}` | unexpected server error |
|
||||
Reference in new issue
Block a user