- Move all files from bruno-yaml/* to bruno/* - Maintains existing directory structure within categories - Updates bruno/user/auth files with OAuth2 refresh token flow - Updates bruno/user/profile files for user profile management - Adds bruno/dashboard/ directory with dashboard API tests - Preserves all existing test scenarios and OpenCollection YAML format - No functional changes - file reorganization only
107 lines
2.9 KiB
YAML
107 lines
2.9 KiB
YAML
info:
|
|
name: Sync with Annotations
|
|
type: http
|
|
seq: 4
|
|
|
|
http:
|
|
method: POST
|
|
url: '{{base_url}}/api/sync/kobo/markup'
|
|
auth: inherit
|
|
headers:
|
|
- key: Content-Type
|
|
value: application/json
|
|
- key: x-kobo-device
|
|
value: '{"DeviceId":"{{kobo_device_id}}","Model":"Kobo Libra"}'
|
|
body:
|
|
type: json
|
|
json:
|
|
ReadingSync:
|
|
- ContentId: book-uuid
|
|
PercentRead: 55.0
|
|
EntitlementId: entitlement-id
|
|
RemainingTimeMinutes: 120
|
|
FirstReadTime: '2026-01-25T10:00:00Z'
|
|
LastModified: '2026-01-30T20:00:00Z'
|
|
BookmarkSync:
|
|
- ContentId: book-uuid
|
|
BookmarkText: Important quote
|
|
BookmarkType: annotation
|
|
BookmarkTitle: Chapter 4 - The Truth
|
|
- ContentId: book-uuid
|
|
BookmarkText: Another quote
|
|
BookmarkType: annotation
|
|
BookmarkTitle: Chapter 5
|
|
- ContentId: book-uuid
|
|
BookmarkText: Note to myself
|
|
BookmarkType: note
|
|
BookmarkTitle: Personal note
|
|
|
|
docs: |-
|
|
## Sync with Multiple Annotations
|
|
|
|
Synchronizes reading progress with multiple highlights and notes.
|
|
|
|
**Method:** POST
|
|
|
|
**Endpoint:** /api/sync/kobo/markup
|
|
|
|
**Authentication:** Bearer token
|
|
|
|
**Headers:**
|
|
- `Authorization`: Bearer {{kobo_device_token}}
|
|
- `x-kobo-device`: Device info (Model: "Kobo Libra")
|
|
|
|
**Request Body:**
|
|
- `ReadingSync` (array): Single book progress
|
|
- `BookmarkSync` (array): Multiple annotations
|
|
- Can include highlights (annotation type)
|
|
- Can include notes (note type)
|
|
- Each has: ContentId, BookmarkText, BookmarkType, BookmarkTitle
|
|
|
|
**Response:**
|
|
- `progress_synced` (boolean): Progress update status
|
|
- `annotations_synced` (integer): Number of annotations synced
|
|
- `highlights_count` (integer): Highlights synced
|
|
- `notes_count` (integer): Notes synced
|
|
- `conflicts` (array): Any annotation conflicts resolved
|
|
- `timestamp` (string): Sync completion time
|
|
|
|
**Status Codes:**
|
|
- 200: Successful sync
|
|
- 401: Unauthorized
|
|
- 400: Invalid annotation data
|
|
|
|
**Kobo Annotation Types:**
|
|
- **Highlights:** Selected text passages
|
|
- 5 preset colors available
|
|
- Can have chapter titles
|
|
- Exportable to PDF/Mobile
|
|
- **Notes:** Personal annotations
|
|
- Free-form text
|
|
- Can be attached to highlights
|
|
- Separate from highlights
|
|
- **Bookmarks:** Location markers
|
|
- Chapter positions
|
|
- Quick navigation
|
|
|
|
**Sync Behavior:**
|
|
- Duplicates detected by content matching
|
|
- Most recent edit wins conflicts
|
|
- Annotations linked to book content
|
|
- Chapter references preserved
|
|
- Order maintained from device
|
|
|
|
**Kobo Notebook Export:**
|
|
- All annotations appear in Kobo "Notebook"
|
|
- Can be exported to PDF
|
|
- Can be exported to Mobile (text)
|
|
- Organized by book
|
|
- Shows highlight context
|
|
|
|
**Use Cases:**
|
|
- Study and research
|
|
- Book club discussion prep
|
|
- Content review
|
|
- Sharing insights
|
|
- Personal learning archive
|