From f90d4b282e9067731abbfacb05f8325c2a0a0e00 Mon Sep 17 00:00:00 2001 From: Marcel Date: Fri, 24 Apr 2026 20:30:15 +0200 Subject: [PATCH] refactor(documents): extract applyBatchMetadata private helper in DocumentService storeDocumentWithBatchMetadata was a 30-line flat method mixing file storage with metadata hydration. The private helper makes each concern visible at a glance. Co-Authored-By: Claude Sonnet 4.6 --- .../raddatz/familienarchiv/service/DocumentService.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/backend/src/main/java/org/raddatz/familienarchiv/service/DocumentService.java b/backend/src/main/java/org/raddatz/familienarchiv/service/DocumentService.java index dac82517..06317642 100644 --- a/backend/src/main/java/org/raddatz/familienarchiv/service/DocumentService.java +++ b/backend/src/main/java/org/raddatz/familienarchiv/service/DocumentService.java @@ -146,8 +146,11 @@ public class DocumentService { public StoreResult storeDocumentWithBatchMetadata( MultipartFile file, DocumentBatchMetadataDTO metadata, int fileIndex, UUID actorId) throws IOException { StoreResult base = storeDocument(file, actorId); - Document doc = base.document(); + Document doc = applyBatchMetadata(base.document(), metadata, fileIndex); + return new StoreResult(documentRepository.save(doc), base.isNew()); + } + private Document applyBatchMetadata(Document doc, DocumentBatchMetadataDTO metadata, int fileIndex) { if (metadata.getTitles() != null && fileIndex < metadata.getTitles().size()) { doc.setTitle(metadata.getTitles().get(fileIndex)); } @@ -172,9 +175,7 @@ public class DocumentService { doc = documentRepository.findById(docId) .orElseThrow(() -> DomainException.notFound(ErrorCode.DOCUMENT_NOT_FOUND, "Not found after batch metadata: " + docId)); } - - Document saved = documentRepository.save(doc); - return new StoreResult(saved, base.isNew()); + return doc; } @Transactional