Skip to content
Snippets Groups Projects
Commit 6b35a05c authored by Lukas Malte Monnerjahn's avatar Lukas Malte Monnerjahn
Browse files

Merge branch 'OZG-7144_oeid_form_customparams' into 'main'

OZG-7144 optional read OEID from

See merge request !3
parents 1566241d 895d293c
No related branches found
No related tags found
1 merge request!3OZG-7144 optional read OEID from
Pipeline #2173 passed
......@@ -41,7 +41,7 @@
<description>Semantik-Adapter für AFM/IntelliForm</description>
<properties>
<eingang-manager.version>2.18.0</eingang-manager.version>
<eingang-manager.version>2.18.1</eingang-manager.version>
</properties>
<dependencies>
......
......@@ -33,6 +33,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import de.ozgcloud.eingang.common.formdata.FormData;
import de.ozgcloud.eingang.common.formdata.FormData.FormDataControl;
import de.ozgcloud.eingang.common.formdata.ZustaendigeStelle;
@Component
......@@ -42,6 +43,8 @@ class AfmZustaendigeStelleMapper implements AfmEngineBasedMapper {
public static final String EMAIL = "emailadresse";
public static final String ORGANISATIONSEINHEITEN_ID = "OrganisationseinheitenID";
public static final String ORGANISATIONSEINHEITEN_ID_ALT = "organisationseinheitid";
public static final String ORGANISATIONSEINHEITEN_ID_PARAMETER = "CUSTOMPARAMETER_ORGANISATIONSEINHEITID";
public static final String TAG_BEZEICHNUNG = "OrganisationseinheitenBEZEICHNUNG";
@Autowired
......@@ -78,7 +81,13 @@ class AfmZustaendigeStelleMapper implements AfmEngineBasedMapper {
}
String getOrganisationseinheitenId(FormData formData) {
return (String) formData.getFormData().get(ORGANISATIONSEINHEITEN_ID);
return Optional.ofNullable((String) formData.getFormData().get(ORGANISATIONSEINHEITEN_ID))
.or(() -> getOeIdFromControl(formData.getControl()))
.orElseGet(() -> (String) formData.getFormData().get(ORGANISATIONSEINHEITEN_ID_ALT));
}
private Optional<String> getOeIdFromControl(FormDataControl control) {
return control.getMetaData().map(metaData -> metaData.getEntry(ORGANISATIONSEINHEITEN_ID_PARAMETER));
}
Map<String, Object> addMetaDataFlag(FormData formData) {
......
......@@ -24,10 +24,13 @@
package de.ozgcloud.eingang.semantik.enginebased.afm;
import static org.assertj.core.api.Assertions.*;
import static org.mockito.ArgumentMatchers.*;
import static org.mockito.Mockito.*;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import java.util.Optional;
import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;
......@@ -36,7 +39,10 @@ import org.mockito.Mock;
import org.mockito.Spy;
import de.ozgcloud.eingang.common.formdata.FormData;
import de.ozgcloud.eingang.common.formdata.FormData.FormDataControl;
import de.ozgcloud.eingang.common.formdata.FormDataTestFactory;
import de.ozgcloud.eingang.common.formdata.FormMetaData;
import de.ozgcloud.eingang.common.formdata.FormMetaDataTestFactory;
import de.ozgcloud.eingang.common.formdata.ZustaendigeStelle;
class AfmZustaendigeStelleMapperTest {
......@@ -125,6 +131,56 @@ class AfmZustaendigeStelleMapperTest {
}
}
@Nested
class TestGetOrganisationsEinheitId {
@Test
void shouldGetId() {
var formData = FormData.builder().formData(AfmZustaendigeStelleTestFactory.createZustaendigeStelleMap()).build();
var result = mapper.getOrganisationseinheitenId(formData);
assertThat(result).isEqualTo(AfmZustaendigeStelleTestFactory.ORGANISATIONSEINHEITEN_ID);
}
@Test
void shouldGetIdFromAlternativField() {
var map = AfmZustaendigeStelleTestFactory.createZustaendigeStelleMap();
map.remove(AfmZustaendigeStelleMapper.ORGANISATIONSEINHEITEN_ID);
map.put(AfmZustaendigeStelleMapper.ORGANISATIONSEINHEITEN_ID_ALT, AfmZustaendigeStelleTestFactory.ORGANISATIONSEINHEITEN_ID);
var formData = FormData.builder().formData(map).build();
var result = mapper.getOrganisationseinheitenId(formData);
assertThat(result).isEqualTo(AfmZustaendigeStelleTestFactory.ORGANISATIONSEINHEITEN_ID);
}
@Test
void shouldGetIdFromMetaData() {
FormMetaData metaData = FormMetaDataTestFactory
.create(Map.of("CUSTOMPARAMETER_ORGANISATIONSEINHEITID", AfmZustaendigeStelleTestFactory.ORGANISATIONSEINHEITEN_ID));
var formData = FormDataTestFactory.createBuilder().formData(Collections.emptyMap())
.control(FormDataControl.builder().metaData(Optional.of(metaData)).build())
.build();
var result = mapper.getOrganisationseinheitenId(formData);
assertThat(result).isEqualTo(AfmZustaendigeStelleTestFactory.ORGANISATIONSEINHEITEN_ID);
}
@Test
void shouldReturnNullIfIdMissing() {
var map = AfmZustaendigeStelleTestFactory.createZustaendigeStelleMap();
map.remove(AfmZustaendigeStelleMapper.ORGANISATIONSEINHEITEN_ID);
var formData = FormData.builder().formData(map).build();
var result = mapper.getOrganisationseinheitenId(formData);
assertThat(result).isNull();
}
}
@Nested
class TestAddMetaDataFlag {
......
......@@ -27,8 +27,6 @@ import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
import de.ozgcloud.eingang.semantik.enginebased.afm.AfmZustaendigeStelleMapper;
public class AfmZustaendigeStelleTestFactory {
public static final String ORGANISATIONSEINHEITEN_ID = UUID.randomUUID().toString();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment