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 0000000000000000000000000000000000000000..0bd2ef454ec3ab14fea971fa424c273710a7f563 --- /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 a08710f9a9dfd43d3d1d62cf675286e3a7718a88..dd3b1daf032fc8dd146d0f043a3be253f7cf47af 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) {