test: add Bruno API collections for sync features
- Add device registration and management API tests - Add conflicts resolution API tests - Add queue management API tests - Add KOReader sync protocol tests - Add Kobo sync protocol tests
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
meta {
|
||||
name: Clear Device Queue
|
||||
type: http
|
||||
seq: 6
|
||||
}
|
||||
|
||||
delete {
|
||||
url: {{base_url}}/api/queue/devices/{{device_id}}/clear
|
||||
body: none
|
||||
auth: bearer
|
||||
}
|
||||
|
||||
headers: {
|
||||
Authorization: Bearer {{token}}
|
||||
}
|
||||
|
||||
docs {
|
||||
## Clear Device Queue
|
||||
|
||||
Clears all queue items for a specific device.
|
||||
|
||||
**Method:** DELETE
|
||||
|
||||
**Endpoint:** /api/queue/devices/:device_id/clear
|
||||
|
||||
**Authentication:** Bearer token
|
||||
|
||||
**Path Parameters:**
|
||||
- `device_id` (string): Device UUID
|
||||
|
||||
**Response:**
|
||||
- Success message with count of cleared items
|
||||
|
||||
**Status Codes:**
|
||||
- 200: Success
|
||||
- 401: Unauthorized
|
||||
- 404: Device not found
|
||||
|
||||
**Example Response:**
|
||||
```json
|
||||
{
|
||||
"message": "Queue cleared",
|
||||
"device_id": "uuid",
|
||||
"cleared_count": 10
|
||||
}
|
||||
```
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
meta {
|
||||
name: Delete Queue Item
|
||||
type: http
|
||||
seq: 5
|
||||
}
|
||||
|
||||
delete {
|
||||
url: {{base_url}}/api/queue/items/{{item_id}}
|
||||
body: none
|
||||
auth: bearer
|
||||
}
|
||||
|
||||
headers: {
|
||||
Authorization: Bearer {{token}}
|
||||
}
|
||||
|
||||
docs {
|
||||
## Delete Queue Item
|
||||
|
||||
Deletes a queue item from the sync queue.
|
||||
|
||||
**Method:** DELETE
|
||||
|
||||
**Endpoint:** /api/queue/items/:item_id
|
||||
|
||||
**Authentication:** Bearer token
|
||||
|
||||
**Path Parameters:**
|
||||
- `item_id` (string): Queue item UUID
|
||||
|
||||
**Response:**
|
||||
- Success message confirming deletion
|
||||
|
||||
**Status Codes:**
|
||||
- 200: Success
|
||||
- 401: Unauthorized
|
||||
- 404: Queue item not found
|
||||
|
||||
**Example Response:**
|
||||
```json
|
||||
{
|
||||
"message": "Queue item deleted",
|
||||
"item_id": "uuid"
|
||||
}
|
||||
```
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
meta {
|
||||
name: Get Device Queue Stats
|
||||
type: http
|
||||
seq: 2
|
||||
}
|
||||
|
||||
get {
|
||||
url: {{base_url}}/api/queue/devices/{{device_id}}/stats
|
||||
body: none
|
||||
auth: bearer
|
||||
}
|
||||
|
||||
headers: {
|
||||
Authorization: Bearer {{token}}
|
||||
}
|
||||
|
||||
docs {
|
||||
## Get Device Queue Stats
|
||||
|
||||
Retrieves statistics for a specific device's sync queue.
|
||||
|
||||
**Method:** GET
|
||||
|
||||
**Endpoint:** /api/queue/devices/:device_id/stats
|
||||
|
||||
**Authentication:** Bearer token
|
||||
|
||||
**Path Parameters:**
|
||||
- `device_id` (string): Device UUID
|
||||
|
||||
**Response:**
|
||||
- Queue statistics including pending, completed, and failed counts
|
||||
|
||||
**Status Codes:**
|
||||
- 200: Success
|
||||
- 401: Unauthorized
|
||||
- 404: Device not found
|
||||
|
||||
**Example Response:**
|
||||
```json
|
||||
{
|
||||
"device_id": "uuid",
|
||||
"total_items": 10,
|
||||
"pending": 3,
|
||||
"completed": 5,
|
||||
"failed": 2
|
||||
}
|
||||
```
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
meta {
|
||||
name: List All Queue Items (Admin)
|
||||
type: http
|
||||
seq: 1
|
||||
}
|
||||
|
||||
get {
|
||||
url: {{base_url}}/api/queue/items
|
||||
body: none
|
||||
auth: bearer
|
||||
}
|
||||
|
||||
headers: {
|
||||
Authorization: Bearer {{token}}
|
||||
}
|
||||
|
||||
docs {
|
||||
## List All Queue Items (Admin)
|
||||
|
||||
Retrieves all queue items across all devices (admin only).
|
||||
|
||||
**Method:** GET
|
||||
|
||||
**Endpoint:** /api/queue/items
|
||||
|
||||
**Authentication:** Bearer token (admin role required)
|
||||
|
||||
**Response:**
|
||||
- Array of queue items with device and status information
|
||||
|
||||
**Status Codes:**
|
||||
- 200: Success
|
||||
- 401: Unauthorized
|
||||
- 403: Forbidden - admin role required
|
||||
|
||||
**Example Response:**
|
||||
```json
|
||||
[
|
||||
{
|
||||
"id": "uuid",
|
||||
"device_id": "uuid",
|
||||
"item_type": "progress",
|
||||
"status": "pending",
|
||||
"created_at": "2024-01-01T00:00:00Z"
|
||||
}
|
||||
]
|
||||
```
|
||||
}
|
||||
@@ -0,0 +1,53 @@
|
||||
meta {
|
||||
name: List Device Queue Items
|
||||
type: http
|
||||
seq: 3
|
||||
}
|
||||
|
||||
get {
|
||||
url: {{base_url}}/api/queue/devices/{{device_id}}/items
|
||||
body: none
|
||||
auth: bearer
|
||||
}
|
||||
|
||||
headers: {
|
||||
Authorization: Bearer {{token}}
|
||||
}
|
||||
|
||||
docs {
|
||||
## List Device Queue Items
|
||||
|
||||
Retrieves all queue items for a specific device.
|
||||
|
||||
**Method:** GET
|
||||
|
||||
**Endpoint:** /api/queue/devices/:device_id/items
|
||||
|
||||
**Authentication:** Bearer token
|
||||
|
||||
**Path Parameters:**
|
||||
- `device_id` (string): Device UUID
|
||||
|
||||
**Response:**
|
||||
- Array of queue items for the specified device
|
||||
|
||||
**Status Codes:**
|
||||
- 200: Success
|
||||
- 401: Unauthorized
|
||||
- 404: Device not found
|
||||
|
||||
**Example Response:**
|
||||
```json
|
||||
[
|
||||
{
|
||||
"id": "uuid",
|
||||
"device_id": "uuid",
|
||||
"item_type": "progress",
|
||||
"status": "pending",
|
||||
"data": {},
|
||||
"created_at": "2024-01-01T00:00:00Z",
|
||||
"updated_at": "2024-01-01T00:00:00Z"
|
||||
}
|
||||
]
|
||||
```
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
meta {
|
||||
name: Retry Queue Item
|
||||
type: http
|
||||
seq: 4
|
||||
}
|
||||
|
||||
post {
|
||||
url: {{base_url}}/api/queue/items/{{item_id}}/retry
|
||||
body: none
|
||||
auth: bearer
|
||||
}
|
||||
|
||||
headers: {
|
||||
Authorization: Bearer {{token}}
|
||||
}
|
||||
|
||||
docs {
|
||||
## Retry Queue Item
|
||||
|
||||
Retries a failed queue item.
|
||||
|
||||
**Method:** POST
|
||||
|
||||
**Endpoint:** /api/queue/items/:item_id/retry
|
||||
|
||||
**Authentication:** Bearer token
|
||||
|
||||
**Path Parameters:**
|
||||
- `item_id` (string): Queue item UUID
|
||||
|
||||
**Response:**
|
||||
- Success message indicating retry initiated
|
||||
|
||||
**Status Codes:**
|
||||
- 200: Success
|
||||
- 401: Unauthorized
|
||||
- 404: Queue item not found
|
||||
- 400: Invalid item status
|
||||
|
||||
**Example Response:**
|
||||
```json
|
||||
{
|
||||
"message": "Queue item retry initiated",
|
||||
"item_id": "uuid"
|
||||
}
|
||||
```
|
||||
}
|
||||
@@ -0,0 +1,85 @@
|
||||
meta {
|
||||
name: "Bookmann Sync Queue API"
|
||||
type: "collection"
|
||||
environment: {
|
||||
development: {
|
||||
base_url: "http://localhost:8765/api"
|
||||
},
|
||||
production: {
|
||||
base_url: "https://your-domain.com/api"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# List Queue Items
|
||||
@name("List All Queue Items")
|
||||
GET {{environment.base_url}}/queue/items
|
||||
Authorization: Bearer {{jwt_token}}
|
||||
|
||||
@name("List Queue Items - With Pagination")
|
||||
GET {{environment.base_url}}/queue/items?limit=50&offset=0
|
||||
Authorization: Bearer {{jwt_token}}
|
||||
|
||||
@name("Filter by Status - Pending")
|
||||
GET {{environment.base_url}}/queue/items?status=pending
|
||||
Authorization: Bearer {{jwt_token}}
|
||||
|
||||
@name("Filter by Status - Failed")
|
||||
GET {{environment.base_url}}/queue/items?status=failed
|
||||
Authorization: Bearer {{jwt_token}}
|
||||
|
||||
@name("Filter by Status - Completed")
|
||||
GET {{environment.base_url}}/queue/items?status=completed
|
||||
Authorization: Bearer {{jwt_token}}
|
||||
|
||||
@name("Filter by Type - Progress")
|
||||
GET {{environment.base_url}}/queue/items?status=all&type=progress
|
||||
Authorization: Bearer {{jwt_token}}
|
||||
|
||||
@name("Filter by Type - Notes")
|
||||
GET {{environment.base_url}}/queue/items?status=all&type=note
|
||||
Authorization: Bearer {{jwt_token}}
|
||||
|
||||
@name("Filter by Type - Highlights")
|
||||
GET {{environment.base_url}}/queue/items?status=all&type=highlight
|
||||
Authorization: Bearer {{jwt_token}}
|
||||
|
||||
@name("Filter by Type - Bookmarks")
|
||||
GET {{environment.base_url}}/queue/items?status=all&type=bookmark
|
||||
Authorization: Bearer {{jwt_token}}
|
||||
|
||||
# Process Queue Item
|
||||
@name("Process Queue Item")
|
||||
POST {{environment.base_url}}/queue/items/{{queue_item_id}}/process
|
||||
Authorization: Bearer {{jwt_token}}
|
||||
|
||||
@name("Retry Queue Item")
|
||||
POST {{environment.base_url}}/queue/items/{{queue_item_id}}/retry
|
||||
Authorization: Bearer {{jwt_token}}
|
||||
|
||||
# Delete Queue Item
|
||||
@name("Delete Queue Item")
|
||||
DELETE {{environment.base_url}}/queue/items/{{queue_item_id}}
|
||||
Authorization: Bearer {{jwt_token}}
|
||||
|
||||
# Clear All Queue
|
||||
@name("Clear All Queue Items")
|
||||
DELETE {{environment.base_url}}/queue/clear
|
||||
Authorization: Bearer {{jwt_token}}
|
||||
|
||||
@name("Clear Failed Items")
|
||||
DELETE {{environment.base_url}}/queue/clear-failed
|
||||
Authorization: Bearer {{jwt_token}}
|
||||
|
||||
# Get Queue Stats
|
||||
@name("Get Queue Statistics")
|
||||
GET {{environment.base_url}}/queue/stats
|
||||
Authorization: Bearer {{jwt_token}}
|
||||
|
||||
@name("Get Device Queue Stats")
|
||||
GET {{environment.base_url}}/queue/devices/{{device_id}}/stats
|
||||
Authorization: Bearer {{jwt_token}}
|
||||
|
||||
@name("Get Device Queue Items")
|
||||
GET {{environment.base_url}}/queue/devices/{{device_id}}/items
|
||||
Authorization: Bearer {{jwt_token}}
|
||||
Reference in New Issue
Block a user