From 9fd4dbe5a3d378100b6f3f6b4cb909dc9fded277 Mon Sep 17 00:00:00 2001 From: Ole Anders Eidjord Date: Tue, 19 Nov 2024 18:57:57 +0100 Subject: [PATCH] =?UTF-8?q?FLYT=20skal=20f=C3=A5=20alle=20felter,=20selv?= =?UTF-8?q?=20n=C3=A5r=20det=20ikke=20er=20noe=20=C3=A5=20ha?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../IncomingInstanceMappingService.java | 137 +++++++++++------- .../IncomingInstanceMappingServiceTest.java | 10 +- 2 files changed, 92 insertions(+), 55 deletions(-) diff --git a/src/main/java/no/fintlabs/instance/gateway/IncomingInstanceMappingService.java b/src/main/java/no/fintlabs/instance/gateway/IncomingInstanceMappingService.java index 3cc1f58..6715a7a 100644 --- a/src/main/java/no/fintlabs/instance/gateway/IncomingInstanceMappingService.java +++ b/src/main/java/no/fintlabs/instance/gateway/IncomingInstanceMappingService.java @@ -4,12 +4,13 @@ import no.fintlabs.gateway.instance.InstanceMapper; import no.fintlabs.gateway.instance.model.File; import no.fintlabs.gateway.instance.model.instance.InstanceObject; -import no.fintlabs.instance.gateway.model.vigo.IncomingInstance; +import no.fintlabs.instance.gateway.model.vigo.*; import org.springframework.http.MediaType; import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; import reactor.core.publisher.Mono; +import javax.swing.text.html.Option; import java.time.LocalDate; import java.time.format.DateTimeFormatter; import java.time.format.DateTimeParseException; @@ -45,13 +46,18 @@ public Mono map( private static Map toValuePerKey(IncomingInstance incomingInstance, UUID uuid) { Set> entries = new HashSet<>(); - entries.add(Map.entry("personaliaFodselsnummer", incomingInstance.getPersonalia().getFodselsnummer())); - entries.add(Map.entry("personaliaFornavn", incomingInstance.getPersonalia().getFornavn())); + entries.addAll(createPersonalia(incomingInstance)); + entries.addAll(createInntaksadresse(incomingInstance)); + entries.addAll(createKontaktinformasjon(incomingInstance)); + entries.addAll(createTilleggsinformasjon(incomingInstance)); - Optional.ofNullable(incomingInstance.getPersonalia().getMellomnavn()) - .ifPresent(mellomnavn -> entries.add(Map.entry("personaliaMellomnavn", mellomnavn))); - - entries.add(Map.entry("personaliaEtternavn", incomingInstance.getPersonalia().getEtternavn())); + Optional.ofNullable(incomingInstance.getDokument()).ifPresent(dokument -> { + entries.add(Map.entry("dokumentTittel", dokument.getTittel())); + entries.add(Map.entry("dokumentDato", dokument.getDato())); + entries.add(Map.entry("dokumentFilnavn", dokument.getFilnavn())); + entries.add(Map.entry("dokumentFormat", dokument.getFormat())); + entries.add(Map.entry("dokumentFil", uuid.toString())); + }); entries.add(Map.entry("tilpassetNavn1", Stream.of(incomingInstance.getPersonalia().getFornavn(), @@ -77,58 +83,85 @@ private static Map toValuePerKey(IncomingInstance incomingInstan .collect(Collectors.joining(" ")) )); - Optional.ofNullable(incomingInstance.getPersonalia().getFodselsdato()) - .ifPresent(fodselsdato -> { - entries.add(Map.entry("personaliaFodselsdato", fodselsdato)); - - Optional.ofNullable(formatedDate(fodselsdato, "ddMMyy")).ifPresent(formatedFodselsdato -> - entries.add(Map.entry("tilpassetFodselsdato1", formatedFodselsdato))); - - Optional.ofNullable(formatedDate(fodselsdato, "dd.MM.yyyy")).ifPresent(formatedFodselsdato -> - entries.add(Map.entry("tilpassetFodselsdato2", formatedFodselsdato))); - - }); - - Optional.ofNullable(incomingInstance.getTilleggsinformasjon()).ifPresent(tilleggsinformasjon -> - Optional.ofNullable(tilleggsinformasjon.getSkolear()).ifPresent(skolear -> - entries.add(Map.entry("tilpassetSkolear", formatedSkoleaar(skolear))))); - - entries.add(Map.entry("kontaktinformasjonTelefonnummer", incomingInstance.getKontaktinformasjon().getTelefonnummer())); - entries.add(Map.entry("kontaktinformasjonEpostadresse", incomingInstance.getKontaktinformasjon().getEpostadresse())); - - entries.add(Map.entry("inntaksadresseGateadresse", incomingInstance.getInntaksadresse().getGateadresse())); - entries.add(Map.entry("inntaksadressePostnummer", incomingInstance.getInntaksadresse().getPostnummer())); - entries.add(Map.entry("inntaksadressePoststed", incomingInstance.getInntaksadresse().getPoststed())); - - Optional.ofNullable(incomingInstance.getDokument()).ifPresent(dokument -> { - entries.add(Map.entry("dokumentTittel", dokument.getTittel())); - entries.add(Map.entry("dokumentDato", dokument.getDato())); - entries.add(Map.entry("dokumentFilnavn", dokument.getFilnavn())); - entries.add(Map.entry("dokumentFormat", dokument.getFormat())); - entries.add(Map.entry("dokumentFil", uuid.toString())); - }); + entries.add(Map.entry("tilpassetFodselsdato1", + Optional.ofNullable(incomingInstance.getPersonalia()) + .map(Personalia::getFodselsdato) + .map(fodselsdato -> formatedDate(fodselsdato, "ddMMyy")) + .orElse(EMPTY_STRING) + )); + + entries.add(Map.entry("tilpassetFodselsdato2", + Optional.ofNullable(incomingInstance.getPersonalia()) + .map(Personalia::getFodselsdato) + .map(fodselsdato -> formatedDate(fodselsdato, "dd.MM.yyyy")) + .orElse(EMPTY_STRING) + )); - Optional.ofNullable(incomingInstance.getTilleggsinformasjon()).ifPresent(tilleggsinformasjon -> { - entries.add(Map.entry("tilleggsinformasjonSkolear", - Optional.ofNullable(tilleggsinformasjon.getSkolear()).orElse(EMPTY_STRING))); + entries.add(Map.entry("tilpassetSkolear", + Optional.ofNullable(incomingInstance.getTilleggsinformasjon()) + .map(Tilleggsinformasjon::getSkolear) + .map(IncomingInstanceMappingService::formatedSkoleaar) + .orElse(EMPTY_STRING) + )); - entries.add(Map.entry("tilleggsinformasjonSkolenummer", - Optional.ofNullable(tilleggsinformasjon.getSkolenummer()).orElse(EMPTY_STRING))); + return entries.stream().collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)); + } - entries.add(Map.entry("tilleggsinformasjonSkolenavn", - Optional.ofNullable(tilleggsinformasjon.getSkolenavn()).orElse(EMPTY_STRING))); + private static Collection> createPersonalia(IncomingInstance incomingInstance) { + Optional personalia = Optional.ofNullable(incomingInstance.getPersonalia()); + return List.of( + Map.entry("personaliaFodselsnummer", + incomingInstance.getPersonalia().getFodselsnummer()), + Map.entry("personaliaFornavn", + incomingInstance.getPersonalia().getFornavn()), + Map.entry("personaliaMellomnavn", + personalia.map(Personalia::getMellomnavn).orElse(EMPTY_STRING)), + Map.entry("personaliaEtternavn", + incomingInstance.getPersonalia().getEtternavn()), + Map.entry("personaliaFodselsdato", + personalia.map(Personalia::getFodselsdato).orElse(EMPTY_STRING)) + ); + } - entries.add(Map.entry("tilleggsinformasjonProgramomradekode", - Optional.ofNullable(tilleggsinformasjon.getProgramomradekode()).orElse(EMPTY_STRING))); + private static Collection> createKontaktinformasjon(IncomingInstance incomingInstance) { + Optional kontaktinformasjon = Optional.ofNullable(incomingInstance.getKontaktinformasjon()); + return List.of( + Map.entry("kontaktinformasjonTelefonnummer", + kontaktinformasjon.map(Kontaktinformasjon::getTelefonnummer).orElse(EMPTY_STRING)), + Map.entry("kontaktinformasjonEpostadresse", + kontaktinformasjon.map(Kontaktinformasjon::getEpostadresse).orElse(EMPTY_STRING)) + ); + } - entries.add(Map.entry("tilleggsinformasjonProgramomradenavn", - Optional.ofNullable(tilleggsinformasjon.getProgramomradenavn()).orElse(EMPTY_STRING))); + private static Collection> createInntaksadresse(IncomingInstance incomingInstance) { + Optional inntaksadresse = Optional.ofNullable(incomingInstance.getInntaksadresse()); + return List.of( + Map.entry("inntaksadresseGateadresse", + inntaksadresse.map(Inntaksadresse::getGateadresse).orElse(EMPTY_STRING)), + Map.entry("inntaksadressePostnummer", + inntaksadresse.map(Inntaksadresse::getPostnummer).orElse(EMPTY_STRING)), + Map.entry("inntaksadressePoststed", + inntaksadresse.map(Inntaksadresse::getPoststed).orElse(EMPTY_STRING)) + ); - entries.add(Map.entry("tilleggsinformasjonSokertype", - Optional.ofNullable(tilleggsinformasjon.getSokertype()).orElse(EMPTY_STRING))); - }); + } - return entries.stream().collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)); + private static Collection> createTilleggsinformasjon(IncomingInstance incomingInstance) { + Optional tillegg = Optional.ofNullable(incomingInstance.getTilleggsinformasjon()); + return List.of( + Map.entry("tilleggsinformasjonSkolear", + tillegg.map(Tilleggsinformasjon::getSkolear).orElse(EMPTY_STRING)), + Map.entry("tilleggsinformasjonSkolenummer", + tillegg.map(Tilleggsinformasjon::getSkolenummer).orElse(EMPTY_STRING)), + Map.entry("tilleggsinformasjonSkolenavn", + tillegg.map(Tilleggsinformasjon::getSkolenavn).orElse(EMPTY_STRING)), + Map.entry("tilleggsinformasjonProgramomradekode", + tillegg.map(Tilleggsinformasjon::getProgramomradekode).orElse(EMPTY_STRING)), + Map.entry("tilleggsinformasjonProgramomradenavn", + tillegg.map(Tilleggsinformasjon::getProgramomradenavn).orElse(EMPTY_STRING)), + Map.entry("tilleggsinformasjonSokertype", + tillegg.map(Tilleggsinformasjon::getSokertype).orElse(EMPTY_STRING)) + ); } // 20242025 -> 2024/2025 diff --git a/src/test/java/no/fintlabs/instance/gateway/IncomingInstanceMappingServiceTest.java b/src/test/java/no/fintlabs/instance/gateway/IncomingInstanceMappingServiceTest.java index e6471b6..1b43e94 100644 --- a/src/test/java/no/fintlabs/instance/gateway/IncomingInstanceMappingServiceTest.java +++ b/src/test/java/no/fintlabs/instance/gateway/IncomingInstanceMappingServiceTest.java @@ -177,7 +177,7 @@ void shouldAcceptFodselsdatoAsNull() { persistFile ).block(); - assertFalse(result.getValuePerKey().containsKey("personaliaFodselsdato")); + assertEquals("", result.getValuePerKey().get("personaliaFodselsdato")); } @Test @@ -279,8 +279,8 @@ void shouldNotAcceptInvalidFodselsdato() { persistFile ).block(); - assertFalse(result.getValuePerKey().containsKey("tilpassetFodselsdato1")); - assertFalse(result.getValuePerKey().containsKey("tilpassetFodselsdato2")); + assertEquals("", result.getValuePerKey().get("tilpassetFodselsdato1")); + assertEquals("", result.getValuePerKey().get("tilpassetFodselsdato2")); } @Test @@ -324,6 +324,10 @@ private IncomingInstance.IncomingInstanceBuilder createIncomingInstance() { .format("text/plain") .build()) + .tilleggsinformasjon(Tilleggsinformasjon.builder() + .skolenavn("") + .build()) + .tilleggsinformasjon(Tilleggsinformasjon.builder().build()); }