Skip to content

Commit

Permalink
FLYT skal få alle felter, selv når det ikke er noe å ha
Browse files Browse the repository at this point in the history
  • Loading branch information
oleanders committed Nov 19, 2024
1 parent 2ebafc1 commit 9fd4dbe
Show file tree
Hide file tree
Showing 2 changed files with 92 additions and 55 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -45,13 +46,18 @@ public Mono<InstanceObject> map(
private static Map<String, String> toValuePerKey(IncomingInstance incomingInstance, UUID uuid) {
Set<Map.Entry<String, String>> 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(),
Expand All @@ -77,58 +83,85 @@ private static Map<String, String> 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<? extends Map.Entry<String, String>> createPersonalia(IncomingInstance incomingInstance) {
Optional<Personalia> 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<? extends Map.Entry<String, String>> createKontaktinformasjon(IncomingInstance incomingInstance) {
Optional<Kontaktinformasjon> 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<? extends Map.Entry<String, String>> createInntaksadresse(IncomingInstance incomingInstance) {
Optional<Inntaksadresse> 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<? extends Map.Entry<String, String>> createTilleggsinformasjon(IncomingInstance incomingInstance) {
Optional<Tilleggsinformasjon> 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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -177,7 +177,7 @@ void shouldAcceptFodselsdatoAsNull() {
persistFile
).block();

assertFalse(result.getValuePerKey().containsKey("personaliaFodselsdato"));
assertEquals("", result.getValuePerKey().get("personaliaFodselsdato"));
}

@Test
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -324,6 +324,10 @@ private IncomingInstance.IncomingInstanceBuilder createIncomingInstance() {
.format("text/plain")
.build())

.tilleggsinformasjon(Tilleggsinformasjon.builder()
.skolenavn("")
.build())

.tilleggsinformasjon(Tilleggsinformasjon.builder().build());
}

Expand Down

0 comments on commit 9fd4dbe

Please sign in to comment.