From cb77738f185f98cb10ed172fb4c1da87bf84d94d Mon Sep 17 00:00:00 2001
From: OZGCloud <ozgcloud@mgm-tp.com>
Date: Wed, 14 Aug 2024 13:55:15 +0200
Subject: [PATCH] WIP: OZG-6275 temporary fix for nullpointer because of
 missing nachrichtId

---
 .../muk/transfer/ElsterTransferRemoteService.java     | 11 +++++++----
 .../muk/transfer/ElsterTransferRemoteServiceTest.java |  5 +++--
 2 files changed, 10 insertions(+), 6 deletions(-)

diff --git a/src/main/java/de/ozgcloud/nachrichten/postfach/muk/transfer/ElsterTransferRemoteService.java b/src/main/java/de/ozgcloud/nachrichten/postfach/muk/transfer/ElsterTransferRemoteService.java
index 844d00d..a19908b 100644
--- a/src/main/java/de/ozgcloud/nachrichten/postfach/muk/transfer/ElsterTransferRemoteService.java
+++ b/src/main/java/de/ozgcloud/nachrichten/postfach/muk/transfer/ElsterTransferRemoteService.java
@@ -92,7 +92,7 @@ public class ElsterTransferRemoteService {
 		bereitstellungAuftrag.setAbsender(getAbsender());
 
 		if (anhangNeedToBeUploaded(bereitstellungAuftrag)) {
-			bereitstellungAuftrag.setAnhaenge(nachricht.getAttachments().stream().map(this::uploadAnhang).toList());
+			bereitstellungAuftrag.setAnhaenge(nachricht.getAttachments().stream().map(fileId -> uploadAnhang(fileId, nachricht.getVorgangId())).toList());
 		}
 
 		if (isMitteilung(bereitstellungAuftrag)) {
@@ -122,11 +122,12 @@ public class ElsterTransferRemoteService {
 		return postfachProperties.getSender();
 	}
 
-	BereitstellungAnhangWithUploadId uploadAnhang(String fileId) {
+	BereitstellungAnhangWithUploadId uploadAnhang(String fileId, String vorgangId) {
 		var file = attachmentService.getCloudFile(fileId);
 		try {
 			var uploadInfo = uploadFile(file);
 			var bereitstellungAnhang = fileMapper.toBereitstellungAnhangWithUploadId(file);
+			bereitstellungAnhang.setDateiBezeichnung(vorgangId);
 			bereitstellungAnhang.setUploadId(uploadInfo.getUploadId());
 
 			return bereitstellungAnhang;
@@ -149,8 +150,9 @@ public class ElsterTransferRemoteService {
 
 	BereitstellungAntwort createAntwort(PostfachNachricht nachricht) {
 		var antwort = new BereitstellungAntwort();
-		antwort.setZuordnungskriterium(ObjectIdToUUIDConverter.toUUID(nachricht.getId()));
-		antwort.setAntwortBetreffe(Set.of(postfachProperties.getReplySubjectPrefix() + nachricht.getSubject()));
+		// FIXME: nachricht needs to have a nachricht id already set. Needs to be fixed in de.ozgcloud.nachrichten.postfach.PostfachService or de.ozgcloud.nachrichten.postfach.PostfachEventListener.buildNachricht
+		antwort.setZuordnungskriterium(ObjectIdToUUIDConverter.toUUID(Objects.isNull(nachricht.getId()) ? ObjectId.get().toHexString() : nachricht.getId()));
+		antwort.setAntwortBetreffe(Set.of(postfachProperties.getReplySubjectPrefix() + nachricht.getSubject() + " VorgangId: " + nachricht.getVorgangId()));
 		antwort.setAntwortFrist(LocalDate.now().plusDays(postfachProperties.getReplyInDays()));
 		return antwort;
 	}
@@ -173,6 +175,7 @@ public class ElsterTransferRemoteService {
 
 	PostfachNachricht getAntwort(AntwortDetails antwortDetails) {
 		LOG.info("Processing AntwortDetail {} with DownloadDate {}", antwortDetails, antwortDetails.getDownloadZeitpunkt());
+
 		var nachrichtBuilder = PostfachNachricht.builder()
 		  .direction(PostfachNachricht.Direction.IN)
 		  .mailBody(postfachProperties.getBody());
diff --git a/src/test/java/de/ozgcloud/nachrichten/postfach/muk/transfer/ElsterTransferRemoteServiceTest.java b/src/test/java/de/ozgcloud/nachrichten/postfach/muk/transfer/ElsterTransferRemoteServiceTest.java
index a6cd786..0c9f3f3 100644
--- a/src/test/java/de/ozgcloud/nachrichten/postfach/muk/transfer/ElsterTransferRemoteServiceTest.java
+++ b/src/test/java/de/ozgcloud/nachrichten/postfach/muk/transfer/ElsterTransferRemoteServiceTest.java
@@ -22,6 +22,7 @@
 
 package de.ozgcloud.nachrichten.postfach.muk.transfer;
 
+import static de.ozgcloud.apilib.common.command.grpc.OzgCloudCommandTestFactory.*;
 import static de.ozgcloud.nachrichten.postfach.muk.BereitstellungAuftragTestFactory.*;
 import static de.ozgcloud.nachrichten.postfach.muk.PostfachNachrichtTestFactory.*;
 import static de.ozgcloud.nachrichten.postfach.muk.transfer.AntwortDetailsTestFactory.*;
@@ -182,7 +183,7 @@ class ElsterTransferRemoteServiceTest {
 		void shouldCallUploadAnhang() {
 			elsterTransferService.send(PostfachNachrichtTestFactory.create());
 
-			verify(elsterTransferService).uploadAnhang(anyString());
+			verify(elsterTransferService).uploadAnhang(anyString(), anyString());
 		}
 
 		@Test
@@ -379,7 +380,7 @@ class ElsterTransferRemoteServiceTest {
 			doThrow(IOException.class).when(elsterTransferService).uploadFile(any());
 			var id = OzgCloudFileTestFactory.ID.toString();
 
-			assertThatExceptionOfType(TechnicalException.class).isThrownBy(() -> elsterTransferService.uploadAnhang(id));
+			assertThatExceptionOfType(TechnicalException.class).isThrownBy(() -> elsterTransferService.uploadAnhang(id, VORGANG_ID.toString()));
 		}
 
 		@Test
-- 
GitLab