From 015a8eff82892107ecdec445d3e8776d5f0de4e0 Mon Sep 17 00:00:00 2001
From: OZGCloud <ozgcloud@mgm-tp.com>
Date: Thu, 12 Oct 2023 10:27:50 +0200
Subject: [PATCH] use primaryid for looking for form data xml

---
 .../eingang/intelliform/SemantikFormDataMapper.java        | 7 +++++--
 .../ozgcloud/eingang/intelliform/DepositTestFactory.java   | 1 +
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/intelliform-adapter/src/main/java/de/ozgcloud/eingang/intelliform/SemantikFormDataMapper.java b/intelliform-adapter/src/main/java/de/ozgcloud/eingang/intelliform/SemantikFormDataMapper.java
index 19d35efce..5d9faa593 100644
--- a/intelliform-adapter/src/main/java/de/ozgcloud/eingang/intelliform/SemantikFormDataMapper.java
+++ b/intelliform-adapter/src/main/java/de/ozgcloud/eingang/intelliform/SemantikFormDataMapper.java
@@ -31,6 +31,7 @@ import java.util.Map;
 import java.util.Objects;
 import java.util.Optional;
 
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 import org.w3c.dom.Document;
@@ -99,11 +100,13 @@ class SemantikFormDataMapper {
 	}
 
 	private byte[] getXmlFormData(DepositData depositData) {
+		var primaryId = depositData.getPrimaryDataAttachmentId();
+
 		return depositData.getAttachments().stream()
-				.filter(attachment -> attachment.getName().endsWith(CONTENT_FORMDATA_FILENAME_SUFFIX))
+				.filter(attachment -> StringUtils.equals(attachment.getId(), primaryId))
 				.map(Attachment::getContent)
 				.findFirst()
-				.orElseThrow(() -> new RuntimeException("Request does not contain a file ending with " + CONTENT_FORMDATA_FILENAME_SUFFIX));
+				.orElseThrow(() -> new RuntimeException("Request does not contain primary data attachment"));
 	}
 
 	private void addFiles(Document document, List<IncomingFile> depositRequestFiles, Map<String, Object> formDataMap) {
diff --git a/intelliform-adapter/src/test/java/de/ozgcloud/eingang/intelliform/DepositTestFactory.java b/intelliform-adapter/src/test/java/de/ozgcloud/eingang/intelliform/DepositTestFactory.java
index 49c38a83b..174569a3e 100644
--- a/intelliform-adapter/src/test/java/de/ozgcloud/eingang/intelliform/DepositTestFactory.java
+++ b/intelliform-adapter/src/test/java/de/ozgcloud/eingang/intelliform/DepositTestFactory.java
@@ -47,6 +47,7 @@ public class DepositTestFactory {
 
 	static Deposit withData(DepositData data) {
 		Deposit deposit = new Deposit();
+		data.setPrimaryDataAttachmentId(AttachmentTestFactory.XML_ID);
 		deposit.setData(data);
 
 		return deposit;
-- 
GitLab