From 0344a0c7ff79917d35cb247da42aa86dc7b502ae Mon Sep 17 00:00:00 2001 From: Marcel Date: Wed, 22 Apr 2026 21:58:24 +0200 Subject: [PATCH] feat(backend): dispatch thumbnail generation from MassImportService MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ODS/Excel imports that actually upload a file (file.isPresent()) now trigger thumbnail generation alongside hash/metadata. Metadata-only import rows produce no thumbnail — nothing to render. Refs #307 Co-Authored-By: Claude Opus 4.7 --- .../raddatz/familienarchiv/service/MassImportService.java | 6 +++++- .../familienarchiv/service/MassImportServiceTest.java | 3 ++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/backend/src/main/java/org/raddatz/familienarchiv/service/MassImportService.java b/backend/src/main/java/org/raddatz/familienarchiv/service/MassImportService.java index 5f3cb792..7e847ff8 100644 --- a/backend/src/main/java/org/raddatz/familienarchiv/service/MassImportService.java +++ b/backend/src/main/java/org/raddatz/familienarchiv/service/MassImportService.java @@ -59,6 +59,7 @@ public class MassImportService { private final PersonService personService; private final TagService tagService; private final S3Client s3Client; + private final ThumbnailAsyncRunner thumbnailAsyncRunner; @Value("${app.s3.bucket}") private String bucketName; @@ -332,7 +333,10 @@ public class MassImportService { if (tag != null) doc.getTags().add(tag); doc.setMetadataComplete(metadataComplete); - documentRepository.save(doc); + Document saved = documentRepository.save(doc); + if (file.isPresent()) { + thumbnailAsyncRunner.dispatchAfterCommit(saved.getId()); + } log.info("Importiert{}: {}", file.isEmpty() ? " (nur Metadaten)" : "", originalFilename); } diff --git a/backend/src/test/java/org/raddatz/familienarchiv/service/MassImportServiceTest.java b/backend/src/test/java/org/raddatz/familienarchiv/service/MassImportServiceTest.java index f20aec35..62b138b7 100644 --- a/backend/src/test/java/org/raddatz/familienarchiv/service/MassImportServiceTest.java +++ b/backend/src/test/java/org/raddatz/familienarchiv/service/MassImportServiceTest.java @@ -39,12 +39,13 @@ class MassImportServiceTest { @Mock PersonService personService; @Mock TagService tagService; @Mock S3Client s3Client; + @Mock ThumbnailAsyncRunner thumbnailAsyncRunner; MassImportService service; @BeforeEach void setUp() { - service = new MassImportService(documentRepository, personService, tagService, s3Client); + service = new MassImportService(documentRepository, personService, tagService, s3Client, thumbnailAsyncRunner); ReflectionTestUtils.setField(service, "bucketName", "test-bucket"); ReflectionTestUtils.setField(service, "colIndex", 0); ReflectionTestUtils.setField(service, "colBox", 1);