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 dry_run (and the DB) says that.
Informational notes about the request, e.g. reattach_sessions 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
accept_stem_matches 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
{
"dry_run": true,
"notices": [
"string"
],
"series": [
{
"attempted": true,
"books": [
{
"applied": true,
"completions": {
"inserted": 0,
"reattached": 0,
"skipped": 0
},
"disposition": "matched",
"file_name": "string",
"matched_book_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"path": "string",
"progress": "inserted",
"sessions": {
"inserted": 0,
"reattached": 0,
"skipped": 0
}
}
],
"committed": true,
"disposition": "matched",
"error": "string",
"library_relative_path": "string",
"matched_series_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"rating": "inserted"
}
],
"sessions_in_file": true,
"summary": {
"books_ambiguous": 0,
"books_hash_mismatch": 0,
"books_matched": 0,
"books_stem_matched": 0,
"books_total": 0,
"books_unmatched": 0,
"completions_inserted": 0,
"completions_reattached": 0,
"progress_written": 0,
"ratings_written": 0,
"series_ambiguous": 0,
"series_committed": 0,
"series_matched": 0,
"series_total": 0,
"series_unmatched": 0,
"sessions_inserted": 0,
"sessions_reattached": 0
}
}