Audited every request (247 .yml files) against the routes the server
actually registers (extracted from internal/router, group prefixes
resolved). Results:
- 44 stale requests: deleted where the endpoint no longer exists
(universal-progress GET/PUT /api/progress/:id — routes never existed,
the handlers were deleted in H1; queue stats/clear-failed/process;
admin profile page; auth/account) and FIXED where the endpoint exists
under a different path (kobo token-in-path scheme: every
/api/sync/kobo/<seg> and /api/v1/kobo/<seg> URL now carries
{{kobo_device_token}}; /sync/* missing their /api prefix; koreader
/api/v1/koreader/sync/* -> /api/sync/koreader/*; link-book and
unlinked-books moved to /api/devices/:id/sync/*).
- koreader Sync Highlights/Sync Notes pointed at endpoints that never
existed with a body shape to match — rewritten against POST
/api/sync/koreader/bookmarks (the annotations funnel carries
highlights and notes arrays).
- 9 files the GUI refused to load: 4 had bruno-invalid script type
"tests" (converted to after-response), 4 were info/type:collection
doc files with bogus http blocks (converted to folder.yml folder
docs), 1 had a dead pre-YAML schema and no route (deleted).
- devices/koreader requests now carry request-level bearer auth
({{koreader_device_token}}) — they inherited the collection's user-JWT
bearer, which device endpoints rightly reject — and their bodies
reference {{media_item_id}} instead of dead placeholder uuids.
- environments: opds_base_url was empty (every OPDS request missed the
/opds prefix); set to http://localhost:8765/opds and un-doubled the
prefix in opds/scenarios.
Known limitation, for the handoff: bru CLI cannot execute .yml request
bodies (the collection is GUI OpenCollection format; the CLI runner
reads bodies from .bru files only). A .bru migration is the remaining
bruno work if CLI runs are wanted.
54 lines
1.2 KiB
YAML
54 lines
1.2 KiB
YAML
info:
|
|
name: List Queue Items (With Pagination)
|
|
type: http
|
|
seq: 2
|
|
http:
|
|
method: GET
|
|
url: '{{base_url}}/api/queue/items?limit=50&offset=0'
|
|
auth: inherit
|
|
body:
|
|
type: none
|
|
runtime:
|
|
scripts:
|
|
- type: tests
|
|
code: "test(\"status must be 200\", function() {\n expect(res.status).to.eql(200);"
|
|
|
|
docs: |-
|
|
List items in the sync queue with pagination.
|
|
|
|
**Endpoint**: GET /queue/items
|
|
**Auth**: Required (Bearer token)
|
|
|
|
## Query Parameters
|
|
|
|
| Parameter | Type | Required | Description |
|
|
|-----------|------|-----------|-------------|
|
|
| limit | int | No | Items per page |
|
|
| offset | int | No | Pagination offset |
|
|
|
|
## Response Fields
|
|
|
|
| Field | Type | Description |
|
|
|-------|------|-------------|
|
|
| items | array | List of queue items |
|
|
| total | int | Total number of items |
|
|
| page | int | Current page number |
|
|
| per_page | int | Items per page |
|
|
|
|
## Example Request
|
|
|
|
```
|
|
GET /queue/items?limit=50&offset=0
|
|
```
|
|
|
|
## Error Responses
|
|
|
|
| Code | Description |
|
|
|------|-------------|
|
|
| 401 | Unauthorized |
|
|
| 500 | Internal server error |
|
|
|
|
## Notes
|
|
|
|
- Supports pagination for large queue lists
|