From 5244f88d11c205ded83ea52ef9cc65483473ec07 Mon Sep 17 00:00:00 2001
From: Jan Zickermann <jan.zickermann@dataport.de>
Date: Wed, 27 Nov 2024 17:10:44 +0100
Subject: [PATCH] #4 OZG-7112 remote-it-case: Use dummy getAllMessages

---
 spec/postfach-api-facade.yaml                      |  3 +++
 .../postfach/osiv2/OsiPostfachRemoteService.java   |  4 ++--
 .../osiv2/transfer/PostfachApiFacadeService.java   | 14 ++++++++++++++
 .../postfach/osiv2/transfer/ResponseMapper.java    |  2 +-
 .../OsiPostfachRemoteServiceRemoteITCase.java      |  9 +--------
 5 files changed, 21 insertions(+), 11 deletions(-)

diff --git a/spec/postfach-api-facade.yaml b/spec/postfach-api-facade.yaml
index ac32d8c..708f7e1 100644
--- a/spec/postfach-api-facade.yaml
+++ b/spec/postfach-api-facade.yaml
@@ -953,6 +953,7 @@ paths:
                   nicht gefunden.
   /MessageExchange/v1/Receive/{messageId}/Attachment/{attachmentId}:
     get:
+      operationId: getMessageAttachment
       tags:
       - MessageExchange
       summary: Liefert den Inhalt eines hochgeladenen Attachments im Kontext einer
@@ -1062,6 +1063,7 @@ paths:
                   (GUIDs) wurde nicht gefunden.
   /MessageExchange/v1/Receive/{messageId}:
     get:
+      operationId: getMessage
       tags:
       - MessageExchange
       summary: Liefert den Inhalt einer Antwortnachricht.
@@ -1161,6 +1163,7 @@ paths:
                   nicht gefunden.
   /MessageExchange/v1/Receive:
     get:
+      operationId: receiveMessages
       tags:
       - MessageExchange
       summary: Liefert eine Liste von Antwortnachrichten inklusive der Anhänge.
diff --git a/src/main/java/de/ozgcloud/nachrichten/postfach/osiv2/OsiPostfachRemoteService.java b/src/main/java/de/ozgcloud/nachrichten/postfach/osiv2/OsiPostfachRemoteService.java
index aad81c5..88a7720 100644
--- a/src/main/java/de/ozgcloud/nachrichten/postfach/osiv2/OsiPostfachRemoteService.java
+++ b/src/main/java/de/ozgcloud/nachrichten/postfach/osiv2/OsiPostfachRemoteService.java
@@ -26,8 +26,8 @@ public record OsiPostfachRemoteService(
 
 	@Override
 	public Stream<PostfachNachricht> getAllMessages() {
-		// TODO
-		return Stream.empty();
+		// TODO handle exceptions?
+		return postfachApiFacadeService.receiveMessages();
 	}
 
 	@Override
diff --git a/src/main/java/de/ozgcloud/nachrichten/postfach/osiv2/transfer/PostfachApiFacadeService.java b/src/main/java/de/ozgcloud/nachrichten/postfach/osiv2/transfer/PostfachApiFacadeService.java
index c5af031..0e9a897 100644
--- a/src/main/java/de/ozgcloud/nachrichten/postfach/osiv2/transfer/PostfachApiFacadeService.java
+++ b/src/main/java/de/ozgcloud/nachrichten/postfach/osiv2/transfer/PostfachApiFacadeService.java
@@ -1,10 +1,14 @@
 package de.ozgcloud.nachrichten.postfach.osiv2.transfer;
 
+import java.util.stream.Stream;
+
 import org.springframework.stereotype.Service;
 
 import de.ozgcloud.nachrichten.postfach.PostfachNachricht;
 import de.ozgcloud.nachrichten.postfach.osiv2.gen.api.MessageExchangeApi;
+import lombok.extern.log4j.Log4j2;
 
+@Log4j2
 @Service
 public record PostfachApiFacadeService(
 		MessageExchangeApi messageExchangeApi,
@@ -17,4 +21,14 @@ public record PostfachApiFacadeService(
 				requestMapper.mapOutSendMessageRequestV2(nachricht)
 		).block();
 	}
+
+	public Stream<PostfachNachricht> receiveMessages() {
+		// TODO fetch message by guid and map to PostfachNachricht
+		var response = messageExchangeApi.receiveMessages(100, 0)
+				.block();
+		LOG.info("receive-message-guids: {}", String.join(", ",
+				response.getMessages().stream().map(message -> message.getGuid().toString()).toList()));
+		return Stream.empty();
+	}
+
 }
diff --git a/src/main/java/de/ozgcloud/nachrichten/postfach/osiv2/transfer/ResponseMapper.java b/src/main/java/de/ozgcloud/nachrichten/postfach/osiv2/transfer/ResponseMapper.java
index 393327f..41c126a 100644
--- a/src/main/java/de/ozgcloud/nachrichten/postfach/osiv2/transfer/ResponseMapper.java
+++ b/src/main/java/de/ozgcloud/nachrichten/postfach/osiv2/transfer/ResponseMapper.java
@@ -4,6 +4,6 @@ import org.mapstruct.Mapper;
 import org.mapstruct.ReportingPolicy;
 
 @Mapper(unmappedTargetPolicy = ReportingPolicy.ERROR)
-public class ResponseMapper {
+public interface ResponseMapper {
 
 }
diff --git a/src/test/java/de/ozgcloud/nachrichten/postfach/osiv2/OsiPostfachRemoteServiceRemoteITCase.java b/src/test/java/de/ozgcloud/nachrichten/postfach/osiv2/OsiPostfachRemoteServiceRemoteITCase.java
index b85d522..78c6a2f 100644
--- a/src/test/java/de/ozgcloud/nachrichten/postfach/osiv2/OsiPostfachRemoteServiceRemoteITCase.java
+++ b/src/test/java/de/ozgcloud/nachrichten/postfach/osiv2/OsiPostfachRemoteServiceRemoteITCase.java
@@ -15,8 +15,6 @@ import org.springframework.test.context.ActiveProfiles;
 import org.springframework.test.context.DynamicPropertyRegistry;
 import org.springframework.test.context.DynamicPropertySource;
 
-import de.ozgcloud.nachrichten.postfach.PostfachNachricht;
-
 @SpringBootTest(classes = TestApplication.class, webEnvironment = SpringBootTest.WebEnvironment.NONE)
 @ActiveProfiles("itcase")
 @EnabledIfEnvironmentVariable(named = "SH_STAGE_CLIENT_SECRET", matches = ".+")
@@ -25,11 +23,6 @@ public class OsiPostfachRemoteServiceRemoteITCase {
 	@Autowired
 	private OsiPostfachRemoteService osiPostfachRemoteService;
 
-	private static final String MESSAGE_ID = "message-id";
-	private final PostfachNachricht postfachNachricht = PostfachNachricht.builder()
-			.messageId(MESSAGE_ID)
-			.build();
-
 	@DynamicPropertySource
 	static void dynamicProperties(DynamicPropertyRegistry registry) {
 		registry.add(
@@ -61,7 +54,7 @@ public class OsiPostfachRemoteServiceRemoteITCase {
 		@DisplayName("should not fail")
 		@Test
 		void shouldNotFail() {
-			assertThatCode(() -> osiPostfachRemoteService.sendMessage(postfachNachricht))
+			assertThatCode(() -> osiPostfachRemoteService.getAllMessages())
 					.doesNotThrowAnyException();
 		}
 
-- 
GitLab