feat(issues): retry a processing issue through the individual scanner
POST /api/libraries/:id/issues/:issueId/retry (admin, family-lens gated via the existing gateIssue) re-runs the work that produced an open issue — deliberately NOT a library-wide rescan. Two shapes mirror the two ledger entry kinds: - item-backed issues rescan their media item through the book-detail RescanMediaItem mechanism (self-resolving folders, multi-file audiobook routing, write-after-success guards) and then close the issue (RetryMediaItemIssue); - row-less import_failed issues re-import the single file through the watcher's standalone processMediaFile path (RetryFailedImport: folders resolved RescanMediaItem-style so paths stay library-root-relative), whose create-path self-heal plus an explicit path resolve closes the issue even when the content was already imported by a prior attempt. Failures return the REAL underlying error so the UI can show why the issue still exists; a vanished file is a 409 (ErrRetryFileMissing); already-resolved issues reject re-retry. Docs + bruno mirrors regenerated for the new route (the generator's seq renumbering touches three unrelated bruno files as fallout; openapi gains the path and the date bump), and the docs schema registry gains the retry entry so TestDocsMatchRoutes passes.
This commit is contained in:
1 parent
fb117635f8
commit
6f37be59fc
10 files changed
+246
-4
No files matched your search
@@ -1,7 +1,7 @@
|
||||
openapi: 3.0.3
|
||||
info:
|
||||
title: Bookhoard API
|
||||
version: '2026.10.24'
|
||||
version: '2026.10.27'
|
||||
description: |
|
||||
Generated from the canonical API docs (docs/developer/api/**) by
|
||||
internal/docs (go test ./internal/docs -run TestBrunoMirrorsDocs -update).
|
||||
@@ -1141,6 +1141,15 @@ paths:
|
||||
responses:
|
||||
'200':
|
||||
description: Success
|
||||
"/api/libraries/{id}/issues/{issueId}/retry":
|
||||
post:
|
||||
tags: [libraries]
|
||||
summary: "Retry Processing Issue"
|
||||
security:
|
||||
- bearerAuth: []
|
||||
responses:
|
||||
'200':
|
||||
description: Success
|
||||
"/api/libraries/{id}/issues/{issueId}/{mediaItemId}/resolve":
|
||||
post:
|
||||
tags: [libraries]
|
||||
|
||||
Reference in new issue
Block a user