test: add Bruno API test collections for Kobo and media endpoints

This commit is contained in:
2026-01-31 00:29:40 -05:00
parent 42c3168fcf
commit 45ba922c68
6 changed files with 133 additions and 0 deletions
+26
View File
@@ -0,0 +1,26 @@
meta {
name: Add Books to Kobo Shelf
type: http
seq: 1
}
POST {{baseURL}}/api/devices/{{deviceID}}/shelves
Authorization: Bearer {{userToken}}
Content-Type: application/json
{
"media_item_ids": [
"{{bookUUID1}}",
"{{bookUUID2}}"
],
"shelf_name": "Reading List",
"shelf_position": 0
}
{
"meta": {
"name": "Add Books to Kobo Shelf",
"description": "Add one or more books to a Kobo device shelf",
"documentation": "Manages which books should be synced to a specific Kobo device. Supports multiple shelves for organization."
}
}
+16
View File
@@ -0,0 +1,16 @@
meta {
name: Clear Kobo Shelf
type: http
seq: 1
}
DELETE {{baseURL}}/api/devices/{{deviceID}}/shelves/clear?shelf={{shelfName}}
Authorization: Bearer {{userToken}}
{
"meta": {
"name": "Clear Kobo Shelf",
"description": "Clear all books from a Kobo device shelf (or all shelves if no shelf name specified)",
"documentation": "Removes all books from the specified shelf. If no shelf name is provided, clears all shelves for the device."
}
}
+16
View File
@@ -0,0 +1,16 @@
meta {
name: Get Kobo Shelf
type: http
seq: 1
}
GET {{baseURL}}/api/devices/{{deviceID}}/shelves?shelf={{shelfName}}
Authorization: Bearer {{userToken}}
{
"meta": {
"name": "Get Kobo Shelf Books",
"description": "Get all books on a Kobo device shelf, optionally filter by shelf name",
"documentation": "Returns a list of books with their shelf positions and Kobo-specific metadata (entitlement ID, revision number)."
}
}
@@ -0,0 +1,16 @@
meta {
name: Remove Book from Kobo Shelf
type: http
seq: 1
}
DELETE {{baseURL}}/api/devices/{{deviceID}}/shelves?media_item_id={{bookUUID}}
Authorization: Bearer {{userToken}}
{
"meta": {
"name": "Remove Book from Kobo Shelf",
"description": "Remove a specific book from a Kobo device shelf",
"documentation": "Removes the book from the device's shelf, preventing it from syncing to that device."
}
}
+44
View File
@@ -0,0 +1,44 @@
meta {
name: Server Sync to Kobo
type: http
seq: 1
}
POST {{baseURL}}/api/sync/kobo/sync-from-server
Authorization: Bearer {{koboToken}}
x-kobo-device: {"DeviceId":"kobo-clara-test","Model":"Kobo Clara","SerialNumber":"N123456789"}
Content-Type: application/json
[
{
"ContentId": "{{bookUUID}}",
"PercentRead": 65.4,
"LastModified": "2026-01-31T12:00:00Z",
"Bookmarks": [
{
"BookmarkId": "bookmark-123",
"ContentId": "{{bookUUID}}",
"BookmarkText": "This is an important note",
"BookmarkType": "bookmark",
"BookmarkTitle": "Chapter 5 Note"
}
],
"Highlights": [
{
"BookmarkId": "highlight-456",
"ContentId": "{{bookUUID}}",
"BookmarkText": "highlighted passage text",
"BookmarkType": "annotation",
"BookmarkTitle": "Chapter 3 Highlight"
}
]
}
]
{
"meta": {
"name": "Sync from Bookmann to Kobo",
"description": "Server-initiated sync pushing progress, bookmarks, and highlights from Bookmann to Kobo device",
"documentation": "Two-way sync endpoint. Allows Bookmann server to push updates to Kobo device, including reading progress, bookmarks, and highlights."
}
}
+15
View File
@@ -0,0 +1,15 @@
meta {
name: EPUB Download
type: http
seq: 1
}
GET {{baseURL}}/api/books/{{bookUUID}}/download
{
"meta": {
"name": "Download EPUB Book",
"description": "Download an EPUB book file from Bookmann server (no auth required - for Kobo device download)",
"documentation": "Kobo devices can download books directly from Bookmann using this endpoint. The endpoint returns the book file with appropriate Content-Type headers."
}
}