Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ARKIV-259 The very first step towards the Troms thing. #11

Merged
merged 2 commits into from
Apr 19, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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();
}
}
Loading