From 83756293edc947fbdfa0e43e2e924501691d8ae5 Mon Sep 17 00:00:00 2001 From: OZGCloud <ozgcloud@mgm-tp.com> Date: Wed, 3 Jul 2024 12:21:43 +0200 Subject: [PATCH] OZG-5156 Accept FIM messages in XTA adapter --- .../eingang/xta/FimMessageMapper.java | 38 +++++++++++++++++++ .../de/ozgcloud/eingang/xta/XtaService.java | 10 ++--- 2 files changed, 42 insertions(+), 6 deletions(-) create mode 100644 xta-adapter/src/main/java/de/ozgcloud/eingang/xta/FimMessageMapper.java diff --git a/xta-adapter/src/main/java/de/ozgcloud/eingang/xta/FimMessageMapper.java b/xta-adapter/src/main/java/de/ozgcloud/eingang/xta/FimMessageMapper.java new file mode 100644 index 000000000..0bd2ef454 --- /dev/null +++ b/xta-adapter/src/main/java/de/ozgcloud/eingang/xta/FimMessageMapper.java @@ -0,0 +1,38 @@ +package de.ozgcloud.eingang.xta; + +import de.ozgcloud.eingang.common.formdata.FormData; +import de.ozgcloud.eingang.common.formdata.FormHeader; +import de.ozgcloud.eingang.common.formdata.IncomingFile; + +import de.ozgcloud.eingang.common.formdata.IncomingFileGroup; +import de.ozgcloud.eingang.common.vorgang.VorgangNummerSupplier; +import org.springframework.stereotype.Component; + +import java.util.Collection; +import java.util.Collections; + +import static de.ozgcloud.eingang.xta.XtaMessageMapper.VORGANG_NUMMER_SUFFIX_LENGTH; + +@Component +public class FimMessageMapper { + + /* + * FIXME: This is only a quick and dirty implementation for a fim message mapper + */ + public FormData toFormData(final XtaMessageMetaData metaData, final VorgangNummerSupplier vorgangNummerSupplier, final Collection<IncomingFile> incomingFileList) { + return FormData.builder() + .header(FormHeader.builder() + .formId(metaData.getMessageType()) + .requestId(metaData.getMessageId().toString()) + .createdAt(metaData.getOrigin()) + .vorgangNummer(vorgangNummerSupplier.get(VORGANG_NUMMER_SUFFIX_LENGTH)) + .sender("XTA") + .build()) + .numberOfAttachments(incomingFileList.size()) + .attachments(Collections.singleton(IncomingFileGroup.builder() + .name("fim_files") + .files(incomingFileList) + .build())) + .build(); + } +} diff --git a/xta-adapter/src/main/java/de/ozgcloud/eingang/xta/XtaService.java b/xta-adapter/src/main/java/de/ozgcloud/eingang/xta/XtaService.java index a08710f9a..dd3b1daf0 100644 --- a/xta-adapter/src/main/java/de/ozgcloud/eingang/xta/XtaService.java +++ b/xta-adapter/src/main/java/de/ozgcloud/eingang/xta/XtaService.java @@ -31,6 +31,8 @@ class XtaService { @Autowired private XdomeaMessageDataMapper xdomeaMessageDataMapper; @Autowired + private FimMessageMapper fimMessageMapper; + @Autowired private XtaIncomingFilesMapper xtaIncomingFilesMapper; public Stream<FormData> getMessages() { @@ -43,10 +45,6 @@ class XtaService { } boolean isSupportedMessageType(XtaMessageMetaData metaData) { - if (StringUtils.equals(metaData.getMessageType(), XDOMEA_0201_MESSAGE_TYPE)) { - return true; - } - if (StringUtils.startsWith(metaData.getMessageType(), ALL_FIM_MESSAGES_PREFIX)) { return true; } @@ -58,9 +56,9 @@ class XtaService { public FormData getFormData(@NonNull XtaMessageMetaData metaData) { var msg = remoteService.getMessage(metaData.getMessageId()); var incomingFiles = xtaIncomingFilesMapper.toIncomingFiles(msg.getMessageFiles()); - var xdomeaMessageData = xdomeaMessageDataMapper.mapIncomingFilesToXdomeaMessageData(incomingFiles); - return mapper.toFormData(xdomeaMessageData, metaData, vorgangNummerSupplier); + // FIXME should be called based on messageType and not hard coded + return fimMessageMapper.toFormData(metaData, vorgangNummerSupplier, incomingFiles); } public void acknowledgeReceive(@NonNull XtaMessageId messageId) { -- GitLab