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