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,127 @@
|
||||
meta {
|
||||
name: "Bookmann Conflicts API"
|
||||
type: "collection"
|
||||
environment: {
|
||||
development: {
|
||||
base_url: "http://localhost:8765/api"
|
||||
},
|
||||
production: {
|
||||
base_url: "https://your-domain.com/api"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# List Conflicts
|
||||
@name("List Unresolved Conflicts")
|
||||
GET {{environment.base_url}}/conflicts?status=unresolved
|
||||
Authorization: Bearer {{jwt_token}}
|
||||
|
||||
@name("List All Conflicts")
|
||||
GET {{environment.base_url}}/conflicts?status=all
|
||||
Authorization: Bearer {{jwt_token}}
|
||||
|
||||
@name("List Resolved Conflicts")
|
||||
GET {{environment.base_url}}/conflicts?status=resolved
|
||||
Authorization: Bearer {{jwt_token}}
|
||||
|
||||
@name("List Progress Conflicts")
|
||||
GET {{environment.base_url}}/conflicts?status=unresolved&type=progress
|
||||
Authorization: Bearer {{jwt_token}}
|
||||
|
||||
@name("List Note Conflicts")
|
||||
GET {{environment.base_url}}/conflicts?status=unresolved&type=note
|
||||
Authorization: Bearer {{jwt_token}}
|
||||
|
||||
@name("List Highlight Conflicts")
|
||||
GET {{environment.base_url}}/conflicts?status=unresolved&type=highlight
|
||||
Authorization: Bearer {{jwt_token}}
|
||||
|
||||
# Get Conflict Details
|
||||
@name("Get Conflict Details")
|
||||
GET {{environment.base_url}}/conflicts/{{conflict_id}}
|
||||
Authorization: Bearer {{jwt_token}}
|
||||
|
||||
# Resolve Conflict
|
||||
@name("Resolve - Keep KOReader Progress")
|
||||
POST {{environment.base_url}}/conflicts/{{conflict_id}}/resolve
|
||||
Authorization: Bearer {{jwt_token}}
|
||||
Content-Type: application/json
|
||||
{
|
||||
"winner": "koreader",
|
||||
"apply_to_all_future_conflicts": false,
|
||||
"reason": "KOReader was most recently updated"
|
||||
}
|
||||
|
||||
@name("Resolve - Keep Kobo Progress")
|
||||
POST {{environment.base_url}}/conflicts/{{conflict_id}}/resolve
|
||||
Authorization: Bearer {{jwt_token}}
|
||||
Content-Type: application/json
|
||||
{
|
||||
"winner": "kobo",
|
||||
"apply_to_all_future_conflicts": false,
|
||||
"reason": "Kobo has more progress"
|
||||
}
|
||||
|
||||
@name("Resolve - Keep Web Progress")
|
||||
POST {{environment.base_url}}/conflicts/{{conflict_id}}/resolve
|
||||
Authorization: Bearer {{jwt_token}}
|
||||
Content-Type: application/json
|
||||
{
|
||||
"winner": "web",
|
||||
"apply_to_all_future_conflicts": false,
|
||||
"reason": "Web interface has most recent data"
|
||||
}
|
||||
|
||||
@name("Resolve - Manual Override")
|
||||
POST {{environment.base_url}}/conflicts/{{conflict_id}}/resolve
|
||||
Authorization: Bearer {{jwt_token}}
|
||||
Content-Type: application/json
|
||||
{
|
||||
"winner": "manual",
|
||||
"manual_data": {
|
||||
"percentage": 0.43,
|
||||
"epubcfi": "epubcfi(/6/4/2:20)",
|
||||
"chapter": 3
|
||||
},
|
||||
"apply_to_all_future_conflicts": false,
|
||||
"reason": "User specified custom progress"
|
||||
}
|
||||
|
||||
@name("Resolve - Manual Override with Page")
|
||||
POST {{environment.base_url}}/conflicts/{{conflict_id}}/resolve
|
||||
Authorization: Bearer {{jwt_token}}
|
||||
Content-Type: application/json
|
||||
{
|
||||
"winner": "manual",
|
||||
"manual_data": {
|
||||
"percentage": 0.43,
|
||||
"page": 89,
|
||||
"epubcfi": "epubcfi(/6/4/2:20)"
|
||||
},
|
||||
"apply_to_all_future_conflicts": false,
|
||||
"reason": "User specified page number"
|
||||
}
|
||||
|
||||
@name("Resolve - Apply to All Future Conflicts")
|
||||
POST {{environment.base_url}}/conflicts/{{conflict_id}}/resolve
|
||||
Authorization: Bearer {{jwt_token}}
|
||||
Content-Type: application/json
|
||||
{
|
||||
"winner": "koreader",
|
||||
"apply_to_all_future_conflicts": true,
|
||||
"reason": "Always prefer KOReader for future conflicts"
|
||||
}
|
||||
|
||||
# Delete Conflict
|
||||
@name("Delete Conflict")
|
||||
DELETE {{environment.base_url}}/conflicts/{{conflict_id}}
|
||||
Authorization: Bearer {{jwt_token}}
|
||||
|
||||
@name("Dismiss Conflict")
|
||||
DELETE {{environment.base_url}}/conflicts/{{conflict_id}}
|
||||
Authorization: Bearer {{jwt_token}}
|
||||
|
||||
# Batch Operations
|
||||
@name("Dismiss All Resolved Conflicts")
|
||||
DELETE {{environment.base_url}}/conflicts/dismiss-resolved
|
||||
Authorization: Bearer {{jwt_token}}
|
||||
Reference in New Issue
Block a user