ImportReadingProgressResponse
The response for both a real import and a dry run: the shape is identical
either way, so a client cannot tell from the response alone whether
anything was written. Only dryRun (and the DB) says that.
Informational notes about the request, e.g. reattachSessions having
no effect because the file carries no sessions.
series object[]required
Whether book/rating processing was attempted at all (only when
disposition == matched).
books object[]required
Whether any writes were attempted for this book. False for every
disposition except matched, and except stem_match when
acceptStemMatches is off.
completions objectrequired
Insert/reattach/skip counts for an append-only table (completions or sessions) within one book.
Possible values: >= 0
Adopted an orphaned row (book_id IS NULL) rather than inserting a
new one.
Possible values: >= 0
Already present with the same book attached; re-importing is a no-op.
Possible values: >= 0
Why a book in the import file could not be resolved to exactly one book in its matched series.
Possible values: [matched, stem_match, ambiguous, unmatched, hash_mismatch]
What happened to one scalar field write (progress or rating) under the active conflict policy.
Possible values: [inserted, updated, skipped]
sessions objectrequired
Insert/reattach/skip counts for an append-only table (completions or sessions) within one book.
Possible values: >= 0
Adopted an orphaned row (book_id IS NULL) rather than inserting a
new one.
Possible values: >= 0
Already present with the same book attached; re-importing is a no-op.
Possible values: >= 0
Whether this series' transaction was committed. Always false in a
dry run, and false if attempted but a write failed.
Why a series in the import file could not be resolved to exactly one series in the current library.
Possible values: [matched, ambiguous, unmatched]
What happened to one scalar field write (progress or rating) under the active conflict policy.
Possible values: [inserted, updated, skipped]
summary objectrequired
Totals across every series in the file, for a one-line summary.
Possible values: >= 0
Possible values: >= 0
Possible values: >= 0
Possible values: >= 0
Possible values: >= 0
Possible values: >= 0
Possible values: >= 0
Possible values: >= 0
Possible values: >= 0
Possible values: >= 0
Possible values: >= 0
Possible values: >= 0
Possible values: >= 0
Possible values: >= 0
Possible values: >= 0
Possible values: >= 0
Possible values: >= 0
{
"dryRun": true,
"notices": [
"string"
],
"series": [
{
"attempted": true,
"books": [
{
"applied": true,
"completions": {
"inserted": 0,
"reattached": 0,
"skipped": 0
},
"disposition": "matched",
"fileName": "string",
"matchedBookId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"path": "string",
"progress": "inserted",
"sessions": {
"inserted": 0,
"reattached": 0,
"skipped": 0
}
}
],
"committed": true,
"disposition": "matched",
"error": "string",
"libraryRelativePath": "string",
"matchedSeriesId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"rating": "inserted"
}
],
"sessionsInFile": true,
"summary": {
"booksAmbiguous": 0,
"booksHashMismatch": 0,
"booksMatched": 0,
"booksStemMatched": 0,
"booksTotal": 0,
"booksUnmatched": 0,
"completionsInserted": 0,
"completionsReattached": 0,
"progressWritten": 0,
"ratingsWritten": 0,
"seriesAmbiguous": 0,
"seriesCommitted": 0,
"seriesMatched": 0,
"seriesTotal": 0,
"seriesUnmatched": 0,
"sessionsInserted": 0,
"sessionsReattached": 0
}
}