Skip to content

Commit

Permalink
Merge pull request #11 from FINTLabs/ARKIV-259
Browse files Browse the repository at this point in the history
ARKIV-259 The very first step towards the Troms thing.
  • Loading branch information
nilsodd authored Apr 19, 2024
2 parents 8157838 + 9a22d99 commit f0639dc
Show file tree
Hide file tree
Showing 5 changed files with 127 additions and 22 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,9 @@
import org.springframework.stereotype.Service;
import reactor.core.publisher.Mono;

import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import java.util.UUID;
import java.util.stream.Collectors;
import java.util.stream.Stream;
Expand All @@ -36,27 +38,37 @@ public Mono<InstanceObject> map(Long sourceApplicationId, IncomingInstance incom
}

private static Map<String, String> toValuePerKey(IncomingInstance incomingInstance, UUID uuid) {
Set<Map.Entry<String, String>> entries = new HashSet<>();

return Stream.of(
Map.entry("personaliaFodselsnummer", incomingInstance.getPersonalia().getFodselsnummer()),
Map.entry("personaliaFornavn", incomingInstance.getPersonalia().getFornavn()),
Map.entry("personaliaMellomnavn", incomingInstance.getPersonalia().getMellomnavn()),
Map.entry("personaliaEtternavn", incomingInstance.getPersonalia().getEtternavn()),

Map.entry("kontaktinformasjonTelefonnummer", incomingInstance.getKontaktinformasjon().getTelefonnummer()),
Map.entry("kontaktinformasjonEpostadresse", incomingInstance.getKontaktinformasjon().getEpostadresse()),
entries.add(Map.entry("personaliaFodselsnummer", incomingInstance.getPersonalia().getFodselsnummer()));
entries.add(Map.entry("personaliaFornavn", incomingInstance.getPersonalia().getFornavn()));
entries.add(Map.entry("personaliaMellomnavn", incomingInstance.getPersonalia().getMellomnavn()));
entries.add(Map.entry("personaliaEtternavn", incomingInstance.getPersonalia().getEtternavn()));

Map.entry("inntaksadresseGateadresse", incomingInstance.getInntaksadresse().getGateadresse()),
Map.entry("inntaksadressePostnummer", incomingInstance.getInntaksadresse().getPostnummer()),
Map.entry("inntaksadressePoststed", incomingInstance.getInntaksadresse().getPoststed()),
entries.add(Map.entry("kontaktinformasjonTelefonnummer", incomingInstance.getKontaktinformasjon().getTelefonnummer()));
entries.add(Map.entry("kontaktinformasjonEpostadresse", incomingInstance.getKontaktinformasjon().getEpostadresse()));

Map.entry("dokumentTittel", incomingInstance.getDokument().getTittel()),
Map.entry("dokumentDato", incomingInstance.getDokument().getDato()),
Map.entry("dokumentFilnavn", incomingInstance.getDokument().getFilnavn()),
Map.entry("dokumentFormat", incomingInstance.getDokument().getFormat()),
Map.entry("dokumentFil", uuid.toString()))
entries.add(Map.entry("inntaksadresseGateadresse", incomingInstance.getInntaksadresse().getGateadresse()));
entries.add(Map.entry("inntaksadressePostnummer", incomingInstance.getInntaksadresse().getPostnummer()));
entries.add(Map.entry("inntaksadressePoststed", incomingInstance.getInntaksadresse().getPoststed()));

.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
entries.add(Map.entry("dokumentTittel", incomingInstance.getDokument().getTittel()));
entries.add(Map.entry("dokumentDato", incomingInstance.getDokument().getDato()));
entries.add(Map.entry("dokumentFilnavn", incomingInstance.getDokument().getFilnavn()));
entries.add(Map.entry("dokumentFormat", incomingInstance.getDokument().getFormat()));
entries.add(Map.entry("dokumentFil", uuid.toString()));

if (incomingInstance.getTilleggsinformasjon() != null) {
entries.add(Map.entry("tilleggsinformasjonSkolear", incomingInstance.getTilleggsinformasjon().getSkolear()));
entries.add(Map.entry("tilleggsinformasjonSkolenummer", incomingInstance.getTilleggsinformasjon().getSkolenummer()));
entries.add(Map.entry("tilleggsinformasjonSkolenavn", incomingInstance.getTilleggsinformasjon().getSkolenavn()));
entries.add(Map.entry("tilleggsinformasjonProgramomradekode", incomingInstance.getTilleggsinformasjon().getProgramomradekode()));
entries.add(Map.entry("tilleggsinformasjonProgramomradenavn", incomingInstance.getTilleggsinformasjon().getProgramomradenavn()));
entries.add(Map.entry("tilleggsinformasjonSokertype", incomingInstance.getTilleggsinformasjon().getSokertype()));
}

return entries.stream().collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
}

private Mono<UUID> postFile(Long sourceApplicationId, IncomingInstance incomingInstance) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,9 @@ public InstanceProcessor<IncomingInstance> incomingInstanceProcessor(
IncomingInstanceMappingService incomingInstanceMappingService
) {
return instanceProcessorFactoryService.createInstanceProcessor(
incommingInstance -> Optional.ofNullable(incommingInstance.getDokumenttype()),
incomingInstance -> Optional.ofNullable(incomingInstance.getDokumenttype()),
incomingInstance -> Optional.ofNullable(incomingInstance.getInstansId()),
incomingInstanceMappingService
);
}


}
Original file line number Diff line number Diff line change
Expand Up @@ -21,4 +21,5 @@ public class IncomingInstance {
private final Kontaktinformasjon kontaktinformasjon;
private final Inntaksadresse inntaksadresse;
private final Dokument dokument;
private final Tilleggsinformasjon tilleggsinformasjon;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package no.fintlabs.instance.gateway.model.vigo;

import lombok.Builder;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.extern.jackson.Jacksonized;

@Getter
@Jacksonized
@EqualsAndHashCode
@Builder
public class Tilleggsinformasjon {

private String skolear;
private String skolenummer;
private String skolenavn;
private String programomradekode;
private String programomradenavn;
private String sokertype;
}
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,41 @@ void shouldReturnInstanceObjectWhenIncomingInstanceIsValid() {
UUID uuid = UUID.randomUUID();
when(fileClient.postFile(any(File.class))).thenReturn(Mono.just(uuid));

InstanceObject result = incomingInstanceMappingService.map(4L, createValidIncomingInstance()).block();
InstanceObject result = incomingInstanceMappingService.map(4L, createValidIncomingInstanceWithTilleggsinformasjon()).block();

Map<String, String> valuePerKey = result.getValuePerKey();
assertEquals("Ola", valuePerKey.get("personaliaFornavn"));
assertEquals("Nordmann", valuePerKey.get("personaliaMellomnavn"));
assertEquals("Nordmannsen", valuePerKey.get("personaliaEtternavn"));
assertEquals("12345678901", valuePerKey.get("personaliaFodselsnummer"));

assertEquals("12345678", valuePerKey.get("kontaktinformasjonTelefonnummer"));
assertEquals("ola@normann.no", valuePerKey.get("kontaktinformasjonEpostadresse"));

assertEquals("Osloveien 1", valuePerKey.get("inntaksadresseGateadresse"));
assertEquals("1234", valuePerKey.get("inntaksadressePostnummer"));
assertEquals("Oslo", valuePerKey.get("inntaksadressePoststed"));

assertEquals("Dokumenttittel", valuePerKey.get("dokumentTittel"));
assertEquals("2021-01-01", valuePerKey.get("dokumentDato"));
assertEquals("dokument.pdf", valuePerKey.get("dokumentFilnavn"));
assertEquals("text/plain", valuePerKey.get("dokumentFormat"));
assertEquals(uuid.toString(), valuePerKey.get("dokumentFil"));

assertEquals("2024/2025", valuePerKey.get("tilleggsinformasjonSkolear"));
assertEquals("1", valuePerKey.get("tilleggsinformasjonSkolenummer"));
assertEquals("Oslo katedralskole", valuePerKey.get("tilleggsinformasjonSkolenavn"));
assertEquals("LA1", valuePerKey.get("tilleggsinformasjonProgramomradekode"));
assertEquals("Latin", valuePerKey.get("tilleggsinformasjonProgramomradenavn"));
assertEquals("Ordinær", valuePerKey.get("tilleggsinformasjonSokertype"));
}

@Test
void shouldReturnInstanceObjectWhenIncomingInstanceDoesNotHaveTilleggsinformasjon() {
UUID uuid = UUID.randomUUID();
when(fileClient.postFile(any(File.class))).thenReturn(Mono.just(uuid));

InstanceObject result = incomingInstanceMappingService.map(4L, createIncomingInstanceWithoutTilleggsinformasjon()).block();

Map<String, String> valuePerKey = result.getValuePerKey();
assertEquals("Ola", valuePerKey.get("personaliaFornavn"));
Expand All @@ -63,12 +97,51 @@ void shouldReturnInstanceObjectWhenIncomingInstanceIsValid() {
void shouldNotReturnInstansId(){
when(fileClient.postFile(any(File.class))).thenReturn(Mono.just(UUID.randomUUID()));

InstanceObject result = incomingInstanceMappingService.map(4L, createValidIncomingInstance()).block();
InstanceObject result = incomingInstanceMappingService.map(4L, createValidIncomingInstanceWithTilleggsinformasjon()).block();

assertFalse(result.getValuePerKey().containsKey("instansId"));
}

private IncomingInstance createValidIncomingInstance() {
private IncomingInstance createValidIncomingInstanceWithTilleggsinformasjon() {
return IncomingInstance.builder()
.instansId("12345")
.personalia(Personalia.builder()
.fodselsnummer("12345678901")
.fornavn("Ola")
.mellomnavn("Nordmann")
.etternavn("Nordmannsen")
.build())

.kontaktinformasjon(Kontaktinformasjon.builder()
.telefonnummer("12345678")
.epostadresse("ola@normann.no")
.build())

.inntaksadresse(Inntaksadresse.builder()
.gateadresse("Osloveien 1")
.postnummer("1234")
.poststed("Oslo")
.build())

.dokument(Dokument.builder()
.tittel("Dokumenttittel")
.dato("2021-01-01")
.filnavn("dokument.pdf")
.format("text/plain")
.build())

.tilleggsinformasjon(Tilleggsinformasjon.builder()
.skolear("2024/2025")
.skolenummer("1")
.skolenavn("Oslo katedralskole")
.programomradekode("LA1")
.programomradenavn("Latin")
.sokertype("Ordinær")
.build())
.build();
}

private IncomingInstance createIncomingInstanceWithoutTilleggsinformasjon() {
return IncomingInstance.builder()
.instansId("12345")
.personalia(Personalia.builder()
Expand All @@ -95,6 +168,7 @@ private IncomingInstance createValidIncomingInstance() {
.filnavn("dokument.pdf")
.format("text/plain")
.build())

.build();
}
}

0 comments on commit f0639dc

Please sign in to comment.