+294
−127
File changed.
Preview size limit exceeded, changes collapsed.
Loading
- Add submitSessionBatch() to APIClient for batch uploads (up to 100 sessions)
- Add BATCH_UPLOAD_SIZE constant (100) for easy configuration
- Add _groupSessionsByBook() helper to organize sessions by book_id
- Add _submitSingleSession() helper to extract single upload logic
- Add _uploadSessionsWithBatching() with smart upload strategy:
* Single session: individual upload for immediate feedback
* 2-100 sessions: single batch upload
* 100+ sessions: split into chunks of 100
* Auto-fallback to individual upload if batch endpoint returns 404
Endpoint: POST /api/v1/reading-sessions/batch
Payload: {bookId, bookType, sessions: [{startTime, endTime, ...}]}
Response: Simple success message on 200, error details on failure
Performance improvement: 50 sessions in 1 request (~2-5s) vs 50 requests (~50-100s)
All-or-nothing semantics: entire batch succeeds or fails together.
Handles 404 gracefully by falling back to individual uploads to distinguish
between missing batch endpoint vs missing book on server.
File changed.
Preview size limit exceeded, changes collapsed.