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