Skip to content

Commit

Permalink
Merge pull request #32 from FINTLabs/ARKIV-259-skoleaar
Browse files Browse the repository at this point in the history
ARKIV-259 Tilpasset skoleår i Troms
  • Loading branch information
nilsodd authored Nov 21, 2024
2 parents c839ae5 + 9fd4dbe commit 0275830
Show file tree
Hide file tree
Showing 9 changed files with 185 additions and 69 deletions.
4 changes: 4 additions & 0 deletions .github/workflows/cd.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,10 @@ jobs:
matrix:
org: [ fintlabs-no, ofk-no, tromsfylke-no, bfk-no, afk-no, vlfk-no, rogfk-no, innlandetfylke-no, agderfk-no, mrfylke-no, vestfoldfylke-no ]
cluster: [ aks-beta-fint-2021-11-23, aks-api-fint-2022-02-08 ]
include:
- org: tromsfylke-no
deploy-every-branch: true

exclude:
- cluster: aks-api-fint-2022-02-08
org: fintlabs-no
Expand Down
6 changes: 3 additions & 3 deletions bruno/Get METADATA.bru
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,15 @@ meta {
}

get {
url: https://flyt.vigoiks.no/{{env}}{{org}}/api/intern/metadata?kildeapplikasjonId=4&kildeapplikasjonIntegrasjonId=OTJOURNAL
url: https://flyt.vigoiks.no/{{env}}{{org}}/api/intern/metadata?kildeapplikasjonId=4&bareSisteVersjoner=true
body: none
auth: none
}

params:query {
kildeapplikasjonId: 4
kildeapplikasjonIntegrasjonId: OTJOURNAL
~bareSisteVersjoner:
bareSisteVersjoner: true
~kildeapplikasjonIntegrasjonId: SOKER_N
}

body:json {
Expand Down
14 changes: 13 additions & 1 deletion bruno/OPPMELDING.bru
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ body:json {
"sourceApplicationIntegrationId": "OPPMELDING",
"sourceApplicationIntegrationUri": null,
"integrationDisplayName": "Prøveoppmelding til arkivering",
"version": 1,
"version": "{{next-version}}",
"instanceMetadata": {
"instanceValueMetadata": [],
"instanceObjectCollectionMetadata": [],
Expand Down Expand Up @@ -87,6 +87,18 @@ body:json {
"instanceObjectCollectionMetadata": [],
"categories": []
}
},
{
"displayName": "Tilpasset",
"content": {
"instanceValueMetadata": [
{ "displayName": "Navn (fornavn mellomnavn etternavn)", "type": "STRING", "key": "tilpassetNavn1" },
{ "displayName": "Navn (etternavn fornavn mellomnavn)", "type": "STRING", "key": "tilpassetNavn2" },
{ "displayName": "Navn (etternavn, fornavn mellomnavn)", "type": "STRING", "key": "tilpassetNavn3" }
],
"instanceObjectCollectionMetadata": [],
"categories": []
}
}
]
}
Expand Down
2 changes: 1 addition & 1 deletion bruno/OTJOURNAL.bru
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ body:json {
"sourceApplicationIntegrationId": "OTJOURNAL",
"sourceApplicationIntegrationUri": null,
"integrationDisplayName": "Arkivering fra VIGO OT",
"version": 1,
"version": "{{next-version}}",
"instanceMetadata": {
"instanceValueMetadata": [],
"instanceObjectCollectionMetadata": [],
Expand Down
15 changes: 14 additions & 1 deletion bruno/SOKER_N.bru
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ body:json {
"sourceApplicationIntegrationId": "SOKER_N",
"sourceApplicationIntegrationUri": null,
"integrationDisplayName": "Ny søker",
"version": 3,
"version": "{{next-version}}",
"instanceMetadata": {
"instanceValueMetadata": [],
"instanceObjectCollectionMetadata": [],
Expand Down Expand Up @@ -71,6 +71,19 @@ body:json {
"instanceObjectCollectionMetadata": [],
"categories": []
}
},
{
"displayName": "Tilpasset",
"content": {
"instanceValueMetadata": [
{ "displayName": "Navn (fornavn mellomnavn etternavn)", "type": "STRING", "key": "tilpassetNavn1" },
{ "displayName": "Navn (etternavn fornavn mellomnavn)", "type": "STRING", "key": "tilpassetNavn2" },
{ "displayName": "Navn (etternavn, fornavn mellomnavn)", "type": "STRING", "key": "tilpassetNavn3" },
{ "displayName": "Skoleår (YYYY/YYYY)", "type": "STRING", "key": "tilpassetSkolear" }
],
"instanceObjectCollectionMetadata": [],
"categories": []
}
}
]
}
Expand Down
15 changes: 14 additions & 1 deletion bruno/SOKNAD.bru
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ body:json {
"sourceApplicationIntegrationId": "SOKNAD",
"sourceApplicationIntegrationUri": null,
"integrationDisplayName": "Søknad til arkivet",
"version": 1,
"version": "{{next-version}}",
"instanceMetadata": {
"instanceValueMetadata": [],
"instanceObjectCollectionMetadata": [],
Expand Down Expand Up @@ -85,6 +85,19 @@ body:json {
"instanceObjectCollectionMetadata": [],
"categories": []
}
},
{
"displayName": "Tilpasset",
"content": {
"instanceValueMetadata": [
{ "displayName": "Navn (fornavn mellomnavn etternavn)", "type": "STRING", "key": "tilpassetNavn1" },
{ "displayName": "Navn (etternavn fornavn mellomnavn)", "type": "STRING", "key": "tilpassetNavn2" },
{ "displayName": "Navn (etternavn, fornavn mellomnavn)", "type": "STRING", "key": "tilpassetNavn3" },
{ "displayName": "Skoleår (YYYY/YYYY)", "type": "STRING", "key": "tilpassetSkolear" }
],
"instanceObjectCollectionMetadata": [],
"categories": []
}
}
]
}
Expand Down
22 changes: 20 additions & 2 deletions bruno/collection.bru
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
script:pre-request {

// To make this work, you need to disable 'Send Cookies automatically' in the settings.

// SETT OPP AUTENTISERING
var cookie = [
`user_session=${bru.getEnvVar("user_session")}`,
`Expires=Tue, 19 Jan 2038 03:14:07 GMT`,
Expand All @@ -10,5 +10,23 @@ script:pre-request {
].join("; ")

req.setHeader("Cookie", cookie)


// FINN NESTE VERSJON FØR POST
const fetch = require('node-fetch');

if (req.getMethod() != 'POST') return;

var integrationId = req.body.sourceApplicationIntegrationId;
console.log('🧣 IntegrationId: ', integrationId);

const url = `https://flyt.vigoiks.no/${bru.getEnvVar("env")}${bru.getEnvVar("org")}/api/intern/metadata?kildeapplikasjonId=4&bareSisteVersjoner=true`;
const options = { method: 'GET', headers: { Cookie: cookie } };

const response = await fetch(url, options);
const data = await response.json()
const result = data.find(item => item.sourceApplicationIntegrationId == integrationId);

bru.setVar('next-version', (result ? result.version + 1 : 1));

console.log('🍿 Next version', bru.getVar('next-version'));
}
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 All @@ -22,6 +23,8 @@
@Slf4j
public class IncomingInstanceMappingService implements InstanceMapper<IncomingInstance> {

public static final String EMPTY_STRING = "";

@Override
public Mono<InstanceObject> map(
Long sourceApplicationId,
Expand All @@ -43,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()));

Optional.ofNullable(incomingInstance.getPersonalia().getMellomnavn())
.ifPresent(mellomnavn -> entries.add(Map.entry("personaliaMellomnavn", mellomnavn)));
entries.addAll(createPersonalia(incomingInstance));
entries.addAll(createInntaksadresse(incomingInstance));
entries.addAll(createKontaktinformasjon(incomingInstance));
entries.addAll(createTilleggsinformasjon(incomingInstance));

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 @@ -75,56 +83,96 @@ 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)));

});

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()));
});

Optional.ofNullable(incomingInstance.getTilleggsinformasjon()).ifPresent(tilleggsinformasjon -> {
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(tilleggsinformasjon.getSkolear())
.ifPresent(skolear -> entries.add(Map.entry("tilleggsinformasjonSkolear", skolear)));
entries.add(Map.entry("tilpassetSkolear",
Optional.ofNullable(incomingInstance.getTilleggsinformasjon())
.map(Tilleggsinformasjon::getSkolear)
.map(IncomingInstanceMappingService::formatedSkoleaar)
.orElse(EMPTY_STRING)
));

Optional.ofNullable(tilleggsinformasjon.getSkolenummer())
.ifPresent(skolenummer -> entries.add(Map.entry("tilleggsinformasjonSkolenummer", skolenummer)));
return entries.stream().collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
}

Optional.ofNullable(tilleggsinformasjon.getSkolenavn())
.ifPresent(skolenavn -> entries.add(Map.entry("tilleggsinformasjonSkolenavn", skolenavn)));
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))
);
}

Optional.ofNullable(tilleggsinformasjon.getProgramomradekode())
.ifPresent(programomradekode -> entries.add(Map.entry("tilleggsinformasjonProgramomradekode", programomradekode)));
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))
);
}

Optional.ofNullable(tilleggsinformasjon.getProgramomradenavn())
.ifPresent(programomradenavn -> entries.add(Map.entry("tilleggsinformasjonProgramomradenavn", programomradenavn)));
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))
);

Optional.ofNullable(tilleggsinformasjon.getSokertype())
.ifPresent(sokertype -> entries.add(Map.entry("tilleggsinformasjonSokertype", sokertype)));
}

});
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))
);
}

return entries.stream().collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
// 20242025 -> 2024/2025
private static String formatedSkoleaar(String skolear) {
int length = skolear.length();
if (length == 8) {
return skolear.substring(0, 4) + "/" + skolear.substring(4);
} else {
log.warn("Not posible to format skoleaar: {}", skolear);
return skolear;
}
}

private static String formatedDate(String fodselsdato, String format) {
Expand Down
Loading

0 comments on commit 0275830

Please sign in to comment.