From a4e007cc0f0717f761f2929025df8fda10bf19ee Mon Sep 17 00:00:00 2001
From: OZGCloud <ozgcloud@mgm-tp.com>
Date: Thu, 20 Jun 2024 10:18:03 +0200
Subject: [PATCH] OZG-5666 adjust empty attachments implementation

---
 .../nachrichten/antragraum/AntragraumService.java         | 8 ++++----
 .../nachrichten/postfach/PostfachNachrichtMapper.java     | 7 +++++--
 2 files changed, 9 insertions(+), 6 deletions(-)

diff --git a/nachrichten-manager-server/src/main/java/de/ozgcloud/nachrichten/antragraum/AntragraumService.java b/nachrichten-manager-server/src/main/java/de/ozgcloud/nachrichten/antragraum/AntragraumService.java
index 64a5e09..28365c3 100644
--- a/nachrichten-manager-server/src/main/java/de/ozgcloud/nachrichten/antragraum/AntragraumService.java
+++ b/nachrichten-manager-server/src/main/java/de/ozgcloud/nachrichten/antragraum/AntragraumService.java
@@ -139,14 +139,14 @@ public class AntragraumService {
 		return postfachNachrichtService.findAnswers(BAYERN_ID_SERVICE_KONTO_TYPE, getPostfachId(samlToken), rueckfrageId);
 	}
 
-	String getPostfachId(String samlToken) {
-		return decrypter.decryptPostfachId(parser.parse(samlToken));
-	}
-
 	void verifyToken(String token) {
 		var errors = verifier.verify(token);
 		if (CollectionUtils.isNotEmpty(errors)) {
 			throw new SecurityException("SAML Token verification failed. Errors: %s".formatted(errors));
 		}
 	}
+
+	String getPostfachId(String samlToken) {
+		return decrypter.decryptPostfachId(parser.parse(samlToken));
+	}
 }
diff --git a/nachrichten-manager-server/src/main/java/de/ozgcloud/nachrichten/postfach/PostfachNachrichtMapper.java b/nachrichten-manager-server/src/main/java/de/ozgcloud/nachrichten/postfach/PostfachNachrichtMapper.java
index 76cdd64..c2783a9 100644
--- a/nachrichten-manager-server/src/main/java/de/ozgcloud/nachrichten/postfach/PostfachNachrichtMapper.java
+++ b/nachrichten-manager-server/src/main/java/de/ozgcloud/nachrichten/postfach/PostfachNachrichtMapper.java
@@ -88,8 +88,7 @@ public abstract class PostfachNachrichtMapper {
 				.setReplyOption(MapUtils.getString(mailMap, PostfachNachricht.FIELD_REPLY_OPTION));
 
 		Optional.ofNullable(mailMap.get(PostfachNachricht.FIELD_ATTACHMENTS))
-				.map(String.class::cast)
-				.map(StringUtils::trimToNull)
+				.filter(this::doesAttachmentsExists)
 				.map(this::getAttachments)
 				.ifPresent(postfachMailBuilder::addAllAttachment);
 
@@ -101,6 +100,10 @@ public abstract class PostfachNachrichtMapper {
 		return postfachMailBuilder.build();
 	}
 
+	private boolean doesAttachmentsExists(Object attachments) {
+		return (attachments instanceof String attachment && StringUtils.isNotBlank(attachment)) || attachments instanceof Collection;
+	}
+
 	private Iterable<String> getAttachments(Object attachments) {
 		if (attachments instanceof String attachment) {
 			return Collections.singletonList(attachment);
-- 
GitLab