info: name: Get Dashboard Sections type: http seq: 1 http: method: GET url: '{{base_url}}/api/dashboard/sections?library_id={{library_id}}' auth: inherit body: type: none runtime: scripts: - type: tests code: "test(\"status must be 200 with auth\", function() {\n expect(res.status).to.eql(200);\n\ });\n\ntest(\"response contains sections array\", function() {\n expect(res.body.sections).to.exist;\n\ expect(res.body.sections).to.be.an('array');\n });" docs: |- Get all dashboard sections for a specific library. **Endpoint**: GET /api/dashboard/sections **Auth**: Required (Bearer token via auth: inherit) ## Query Parameters | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | library_id | string | Yes | Library UUID | | limit | int | No | Items per section (default: 20, max: 100) | ## Response Returns array of sections including: - System collections (continue-reading, recently-added, recently-read, not-started) - User collections marked with show_on_dashboard: true ## Section Structure Each section has: - `id`: Collection name (string) - `is_system`: Boolean indicating if this is a system collection - `title`: Display title - `description`: Collection description - `icon`: Emoji icon - `items`: Array of BookInfo objects - `view_all_url`: URL to view all items (system collections only) - `priority`: Display order (lower numbers first) ## Example Response ```json { "sections": [ { "id": "continue-reading", "is_system": true, "title": "Continue Reading", "description": "Books you're currently reading (0 < progress < 1)", "icon": "📖", "items": [ { "media_item_id": "uuid", "title": "Book Title", "author": "Author Name", "cover_image_path": "/path/to/cover.jpg" } ], "view_all_url": "/section/continue-reading", "priority": 1 } ] } ```