diff --git a/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/formbased/mantelantrag/MantelantragFormBasedMapper.java b/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/formbased/mantelantrag/MantelantragFormBasedMapper.java index 27fb3cd14b452d3892cbe8023c9c57c4133a2001..0c10729d0c590ade07b160da796b50909c1f54cb 100644 --- a/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/formbased/mantelantrag/MantelantragFormBasedMapper.java +++ b/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/formbased/mantelantrag/MantelantragFormBasedMapper.java @@ -5,7 +5,6 @@ import java.util.Optional; import java.util.function.UnaryOperator; import java.util.stream.IntStream; -import de.ozgcloud.eingang.semantik.formbased.FormBasedMapper; import org.apache.commons.collections.MapUtils; import org.springframework.core.env.Environment; import org.springframework.stereotype.Component; @@ -13,6 +12,7 @@ import org.springframework.stereotype.Component; import de.ozgcloud.eingang.common.errorhandling.TechnicalException; import de.ozgcloud.eingang.common.formdata.FormData; import de.ozgcloud.eingang.common.formdata.ZustaendigeStelle; +import de.ozgcloud.eingang.semantik.formbased.FormBasedMapper; import lombok.RequiredArgsConstructor; import lombok.extern.log4j.Log4j2; @@ -53,19 +53,16 @@ public class MantelantragFormBasedMapper implements FormBasedMapper { FormData adaptFormDataWithPossibleException(FormData formData) { var fieldMap = formData.getFormData(); var slotIndex = findSlotIndex(fieldMap); - UnaryOperator<String> getValueOrEmpty = field -> getFieldByKeyOrEmpty( + return adaptFormDataWithValueGetter(formData, field -> getFieldByKeyOrEmpty( fieldMap, getNameForSlotIndex(field, slotIndex) - ); - var organisationseinheitId = getValueOrEmpty.apply(ORGANISATIONSEINHEIT_ID_FIELD); - - if (organisationseinheitId.isBlank()) { - throw new TechnicalException("OrganistaionseinheitId not found!"); - } + )); + } + private FormData adaptFormDataWithValueGetter(FormData formData, UnaryOperator<String> getValueOrEmpty) { return formData.toBuilder() .zustaendigeStelle(ZustaendigeStelle.builder() - .organisationseinheitenId(organisationseinheitId) + .organisationseinheitenId(getOrganisationseinheitId(getValueOrEmpty)) .bezeichnung(getValueOrEmpty.apply(BEZEICHNUNG_FIELD)) .email(getValueOrEmpty.apply(EMAIL_FIELD)) .hausanschriftStrasse(getValueOrEmpty.apply(HAUSANSCHRIFT_STRASSE_FIELD)) @@ -76,6 +73,16 @@ public class MantelantragFormBasedMapper implements FormBasedMapper { .build(); } + private String getOrganisationseinheitId(UnaryOperator<String> getValueOrEmpty) { + var organisationseinheitId = getValueOrEmpty.apply(ORGANISATIONSEINHEIT_ID_FIELD); + + if (organisationseinheitId.isBlank()) { + throw new TechnicalException("OrganistaionseinheitId not found!"); + } + + return organisationseinheitId; + } + int findSlotIndex(Map<String, Object> fieldMap) { var identifier = environment.getProperty("ozgcloud.xta.identifier"); return IntStream.range(0, 3)