diff --git a/felles/util/src/main/java/no/nav/vedtak/konfig/Tid.java b/felles/util/src/main/java/no/nav/vedtak/konfig/Tid.java index 080e2a876..011ca64cc 100644 --- a/felles/util/src/main/java/no/nav/vedtak/konfig/Tid.java +++ b/felles/util/src/main/java/no/nav/vedtak/konfig/Tid.java @@ -12,11 +12,11 @@ private Tid() { // hidden } - public static LocalDate fomEllerBegynnelse(LocalDate fom) { + public static LocalDate fomEllerMin(LocalDate fom) { return fom != null ? fom : TIDENES_BEGYNNELSE; } - public static LocalDate tomEllerEndetid(LocalDate tom) { + public static LocalDate tomEllerMax(LocalDate tom) { return tom != null ? tom : TIDENES_ENDE; } } diff --git a/felles/util/src/main/java/no/nav/vedtak/util/InputValideringRegex.java b/felles/util/src/main/java/no/nav/vedtak/util/InputValideringRegex.java index a045e6e20..891576127 100644 --- a/felles/util/src/main/java/no/nav/vedtak/util/InputValideringRegex.java +++ b/felles/util/src/main/java/no/nav/vedtak/util/InputValideringRegex.java @@ -55,6 +55,15 @@ public class InputValideringRegex { */ public static final String FRITEKST = REGEXP_START + TEGN_FRITEKST + REGEXP_SLUTT; + /** + * Bruk dette mønsteret for å validere fritekst til brev. + *

+ * Godtar i tillegg til alt som er tillatt i navn og adresser også flere andre tegn som er relevante. + *

+ * Godtar ikke større-enn og mindre-enn tegn da disse kan misbrukes til å gjøre XSS-angrep + */ + public static final String FRITEKST_BREV = REGEXP_START + TEGN_FRITEKST + "\\p{Graph}\\p{M}\\p{N}\\p{P}\\p{Zl}\\p{Zp}" + REGEXP_SLUTT; + /** * Bruk dette mønsteret for å validere BASE64 "URL and Filename safe". * diff --git a/integrasjon/infotrygd-grunnlag-klient/src/main/java/no/nav/vedtak/felles/integrasjon/infotrygd/grunnlag/AbstractInfotrygdGrunnlag.java b/integrasjon/infotrygd-grunnlag-klient/src/main/java/no/nav/vedtak/felles/integrasjon/infotrygd/grunnlag/AbstractInfotrygdGrunnlag.java index 945f98eec..58eba5881 100644 --- a/integrasjon/infotrygd-grunnlag-klient/src/main/java/no/nav/vedtak/felles/integrasjon/infotrygd/grunnlag/AbstractInfotrygdGrunnlag.java +++ b/integrasjon/infotrygd-grunnlag-klient/src/main/java/no/nav/vedtak/felles/integrasjon/infotrygd/grunnlag/AbstractInfotrygdGrunnlag.java @@ -1,23 +1,19 @@ package no.nav.vedtak.felles.integrasjon.infotrygd.grunnlag; -import java.time.LocalDate; -import java.time.format.DateTimeFormatter; import java.util.Arrays; import java.util.Collections; import java.util.List; -import java.util.Optional; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import jakarta.ws.rs.core.UriBuilder; import no.nav.vedtak.exception.TekniskException; import no.nav.vedtak.felles.integrasjon.infotrygd.grunnlag.v1.respons.Grunnlag; import no.nav.vedtak.felles.integrasjon.rest.RestClient; import no.nav.vedtak.felles.integrasjon.rest.RestConfig; import no.nav.vedtak.felles.integrasjon.rest.RestRequest; -// Extend og annoter med endpoint, evt default. tokenConfig kan settes til TokenFlow.STS_CC eller AZURE_CC +// Extend og annoter med endpoint, evt default. tokenConfig kan settes til TokenFlow.AZURE_CC public abstract class AbstractInfotrygdGrunnlag implements InfotrygdGrunnlag { protected static final Logger LOG = LoggerFactory.getLogger(AbstractInfotrygdGrunnlag.class); @@ -33,32 +29,6 @@ protected AbstractInfotrygdGrunnlag(RestClient client) { this.restConfig = RestConfig.forClient(this.getClass()); } - @Override - public List hentGrunnlag(String fnr, LocalDate fom, LocalDate tom) { - try { - var path = UriBuilder.fromUri(restConfig.endpoint()) - .queryParam("fnr", fnr) - .queryParam("fom", konverter(fom)) - .queryParam("tom", konverter(tom)) - .build(); - return restClient.sendReturnList(RestRequest.newGET(path, restConfig), Grunnlag.class); - } catch (Exception e) { - throw new TekniskException("FP-180125", - String.format("Tjeneste %s gir feil, meld til #infotrygd_replikering hvis dette skjer gjennom lengre tidsperiode.", - restConfig.endpoint()), e); - } - } - - @Override - public List hentGrunnlagFailSoft(String fnr, LocalDate fom, LocalDate tom) { - try { - return hentGrunnlag(fnr, fom, tom); - } catch (Exception e) { - LOG.warn("Feil ved oppslag mot {}, returnerer ingen grunnlag", restConfig.endpoint(), e); - return Collections.emptyList(); - } - } - @Override public List hentGrunnlag(GrunnlagRequest request) { try { @@ -82,17 +52,4 @@ public List hentGrunnlagFailSoft(GrunnlagRequest request) { } } - private static String konverter(LocalDate dato) { - var brukDato = Optional.ofNullable(dato).orElseGet(LocalDate::now); - return brukDato.format(DateTimeFormatter.ISO_LOCAL_DATE); - } - - protected RestClient getRestClient() { - return restClient; - } - - protected RestConfig getRestConfig() { - return restConfig; - } - } diff --git a/integrasjon/infotrygd-grunnlag-klient/src/main/java/no/nav/vedtak/felles/integrasjon/infotrygd/grunnlag/InfotrygdGrunnlag.java b/integrasjon/infotrygd-grunnlag-klient/src/main/java/no/nav/vedtak/felles/integrasjon/infotrygd/grunnlag/InfotrygdGrunnlag.java index d647becaf..7fa01c3da 100644 --- a/integrasjon/infotrygd-grunnlag-klient/src/main/java/no/nav/vedtak/felles/integrasjon/infotrygd/grunnlag/InfotrygdGrunnlag.java +++ b/integrasjon/infotrygd-grunnlag-klient/src/main/java/no/nav/vedtak/felles/integrasjon/infotrygd/grunnlag/InfotrygdGrunnlag.java @@ -1,18 +1,11 @@ package no.nav.vedtak.felles.integrasjon.infotrygd.grunnlag; -import java.time.LocalDate; import java.util.List; import no.nav.vedtak.felles.integrasjon.infotrygd.grunnlag.v1.respons.Grunnlag; public interface InfotrygdGrunnlag { - /* - * Klassisk GET - */ - List hentGrunnlag(String fnr, LocalDate fom, LocalDate tom); - - List hentGrunnlagFailSoft(String fnr, LocalDate fom, LocalDate tom); /* * POST diff --git a/integrasjon/infotrygd-grunnlag-klient/src/main/java/no/nav/vedtak/felles/integrasjon/infotrygd/grunnlag/v1/respons/Arbeidskategori.java b/integrasjon/infotrygd-grunnlag-klient/src/main/java/no/nav/vedtak/felles/integrasjon/infotrygd/grunnlag/v1/respons/Arbeidskategori.java index ae847bb12..9543b9233 100644 --- a/integrasjon/infotrygd-grunnlag-klient/src/main/java/no/nav/vedtak/felles/integrasjon/infotrygd/grunnlag/v1/respons/Arbeidskategori.java +++ b/integrasjon/infotrygd-grunnlag-klient/src/main/java/no/nav/vedtak/felles/integrasjon/infotrygd/grunnlag/v1/respons/Arbeidskategori.java @@ -1,5 +1,10 @@ package no.nav.vedtak.felles.integrasjon.infotrygd.grunnlag.v1.respons; -public record Arbeidskategori(ArbeidskategoriKode kode, String termnavn) { +public record Arbeidskategori(ArbeidskategoriKode kode, String termnavn) implements InfotrygdKode { + + @Override + public String getKode() { + return kode().getKode(); + } } diff --git a/integrasjon/infotrygd-grunnlag-klient/src/main/java/no/nav/vedtak/felles/integrasjon/infotrygd/grunnlag/v1/respons/Behandlingstema.java b/integrasjon/infotrygd-grunnlag-klient/src/main/java/no/nav/vedtak/felles/integrasjon/infotrygd/grunnlag/v1/respons/Behandlingstema.java index 52f41ae40..0f371456e 100644 --- a/integrasjon/infotrygd-grunnlag-klient/src/main/java/no/nav/vedtak/felles/integrasjon/infotrygd/grunnlag/v1/respons/Behandlingstema.java +++ b/integrasjon/infotrygd-grunnlag-klient/src/main/java/no/nav/vedtak/felles/integrasjon/infotrygd/grunnlag/v1/respons/Behandlingstema.java @@ -1,4 +1,4 @@ package no.nav.vedtak.felles.integrasjon.infotrygd.grunnlag.v1.respons; -public record Behandlingstema(BehandlingstemaKode kode, String termnavn) { +public record Behandlingstema(BehandlingstemaKode kode, String termnavn) implements InfotrygdKode { } diff --git a/integrasjon/infotrygd-grunnlag-klient/src/main/java/no/nav/vedtak/felles/integrasjon/infotrygd/grunnlag/v1/respons/InfotrygdKode.java b/integrasjon/infotrygd-grunnlag-klient/src/main/java/no/nav/vedtak/felles/integrasjon/infotrygd/grunnlag/v1/respons/InfotrygdKode.java new file mode 100644 index 000000000..6a5bcdfc9 --- /dev/null +++ b/integrasjon/infotrygd-grunnlag-klient/src/main/java/no/nav/vedtak/felles/integrasjon/infotrygd/grunnlag/v1/respons/InfotrygdKode.java @@ -0,0 +1,13 @@ +package no.nav.vedtak.felles.integrasjon.infotrygd.grunnlag.v1.respons; + +public interface InfotrygdKode { + + Enum kode(); + + default String getKode() { + return kode() != null ? kode().name() : null; + } + + String termnavn(); + +} diff --git a/integrasjon/infotrygd-grunnlag-klient/src/main/java/no/nav/vedtak/felles/integrasjon/infotrygd/grunnlag/v1/respons/Inntektsperiode.java b/integrasjon/infotrygd-grunnlag-klient/src/main/java/no/nav/vedtak/felles/integrasjon/infotrygd/grunnlag/v1/respons/Inntektsperiode.java index 8b8c04e38..b722c925f 100644 --- a/integrasjon/infotrygd-grunnlag-klient/src/main/java/no/nav/vedtak/felles/integrasjon/infotrygd/grunnlag/v1/respons/Inntektsperiode.java +++ b/integrasjon/infotrygd-grunnlag-klient/src/main/java/no/nav/vedtak/felles/integrasjon/infotrygd/grunnlag/v1/respons/Inntektsperiode.java @@ -1,5 +1,5 @@ package no.nav.vedtak.felles.integrasjon.infotrygd.grunnlag.v1.respons; -public record Inntektsperiode(InntektsperiodeKode kode, String termnavn) { +public record Inntektsperiode(InntektsperiodeKode kode, String termnavn) implements InfotrygdKode { } diff --git a/integrasjon/infotrygd-grunnlag-klient/src/main/java/no/nav/vedtak/felles/integrasjon/infotrygd/grunnlag/v1/respons/Status.java b/integrasjon/infotrygd-grunnlag-klient/src/main/java/no/nav/vedtak/felles/integrasjon/infotrygd/grunnlag/v1/respons/Status.java index f01fc93cd..ad08a4be8 100644 --- a/integrasjon/infotrygd-grunnlag-klient/src/main/java/no/nav/vedtak/felles/integrasjon/infotrygd/grunnlag/v1/respons/Status.java +++ b/integrasjon/infotrygd-grunnlag-klient/src/main/java/no/nav/vedtak/felles/integrasjon/infotrygd/grunnlag/v1/respons/Status.java @@ -1,4 +1,4 @@ package no.nav.vedtak.felles.integrasjon.infotrygd.grunnlag.v1.respons; -public record Status(StatusKode kode, String termnavn) { +public record Status(StatusKode kode, String termnavn) implements InfotrygdKode { } diff --git a/integrasjon/infotrygd-grunnlag-klient/src/main/java/no/nav/vedtak/felles/integrasjon/infotrygd/grunnlag/v1/respons/Tema.java b/integrasjon/infotrygd-grunnlag-klient/src/main/java/no/nav/vedtak/felles/integrasjon/infotrygd/grunnlag/v1/respons/Tema.java index 4ca3c934c..30538674e 100644 --- a/integrasjon/infotrygd-grunnlag-klient/src/main/java/no/nav/vedtak/felles/integrasjon/infotrygd/grunnlag/v1/respons/Tema.java +++ b/integrasjon/infotrygd-grunnlag-klient/src/main/java/no/nav/vedtak/felles/integrasjon/infotrygd/grunnlag/v1/respons/Tema.java @@ -1,5 +1,5 @@ package no.nav.vedtak.felles.integrasjon.infotrygd.grunnlag.v1.respons; -public record Tema(TemaKode kode, String termnavn) { +public record Tema(TemaKode kode, String termnavn) implements InfotrygdKode { } diff --git a/integrasjon/infotrygd-grunnlag-klient/src/main/java/no/nav/vedtak/felles/integrasjon/infotrygd/saker/AbstractInfotrygdSaker.java b/integrasjon/infotrygd-grunnlag-klient/src/main/java/no/nav/vedtak/felles/integrasjon/infotrygd/saker/AbstractInfotrygdSaker.java new file mode 100644 index 000000000..6eb5b9f43 --- /dev/null +++ b/integrasjon/infotrygd-grunnlag-klient/src/main/java/no/nav/vedtak/felles/integrasjon/infotrygd/saker/AbstractInfotrygdSaker.java @@ -0,0 +1,56 @@ +package no.nav.vedtak.felles.integrasjon.infotrygd.saker; + +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import no.nav.vedtak.exception.TekniskException; +import no.nav.vedtak.felles.integrasjon.infotrygd.grunnlag.GrunnlagRequest; +import no.nav.vedtak.felles.integrasjon.infotrygd.saker.v1.respons.InfotrygdSak; +import no.nav.vedtak.felles.integrasjon.rest.RestClient; +import no.nav.vedtak.felles.integrasjon.rest.RestConfig; +import no.nav.vedtak.felles.integrasjon.rest.RestRequest; + +// Extend og annoter med endpoint, evt default. tokenConfig kan settes til TokenFlow.AZURE_CC +public abstract class AbstractInfotrygdSaker implements InfotrygdSaker { + protected static final Logger LOG = LoggerFactory.getLogger(AbstractInfotrygdSaker.class); + + private final RestClient restClient; + private final RestConfig restConfig; + + protected AbstractInfotrygdSaker() { + this(RestClient.client()); + } + + protected AbstractInfotrygdSaker(RestClient client) { + this.restClient = client; + this.restConfig = RestConfig.forClient(this.getClass()); + } + + @Override + public List hentSaker(GrunnlagRequest request) { + try { + var rrequest = RestRequest.newPOSTJson(request, restConfig.endpoint(), restConfig); + var resultat = restClient.send(rrequest, InfotrygdSak[].class); + return Arrays.asList(resultat); + } catch (Exception e) { + throw new TekniskException("FP-180125", + String.format("Tjeneste %s gir feil, meld til #infotrygd_replikering hvis dette skjer gjennom lengre tidsperiode.", + restConfig.endpoint()), e); + } + } + + @Override + public List hentSakerFailSoft(GrunnlagRequest request) { + try { + return hentSaker(request); + } catch (Exception e) { + LOG.warn("Feil ved oppslag mot {}, returnerer ingen grunnlag", restConfig.endpoint(), e); + return Collections.emptyList(); + } + } + +} diff --git a/integrasjon/infotrygd-grunnlag-klient/src/main/java/no/nav/vedtak/felles/integrasjon/infotrygd/saker/InfotrygdSaker.java b/integrasjon/infotrygd-grunnlag-klient/src/main/java/no/nav/vedtak/felles/integrasjon/infotrygd/saker/InfotrygdSaker.java index f3183681c..05da09346 100644 --- a/integrasjon/infotrygd-grunnlag-klient/src/main/java/no/nav/vedtak/felles/integrasjon/infotrygd/saker/InfotrygdSaker.java +++ b/integrasjon/infotrygd-grunnlag-klient/src/main/java/no/nav/vedtak/felles/integrasjon/infotrygd/saker/InfotrygdSaker.java @@ -1,11 +1,14 @@ package no.nav.vedtak.felles.integrasjon.infotrygd.saker; -import no.nav.vedtak.felles.integrasjon.infotrygd.saker.v1.respons.Saker; +import java.util.List; -import java.time.LocalDate; +import no.nav.vedtak.felles.integrasjon.infotrygd.grunnlag.GrunnlagRequest; +import no.nav.vedtak.felles.integrasjon.infotrygd.saker.v1.respons.InfotrygdSak; public interface InfotrygdSaker { - Saker getSaker(String fnr, LocalDate fom); + List hentSaker(GrunnlagRequest request); + + List hentSakerFailSoft(GrunnlagRequest request); } diff --git a/integrasjon/infotrygd-grunnlag-klient/src/main/java/no/nav/vedtak/felles/integrasjon/infotrygd/saker/v1/respons/InfotrygdSak.java b/integrasjon/infotrygd-grunnlag-klient/src/main/java/no/nav/vedtak/felles/integrasjon/infotrygd/saker/v1/respons/InfotrygdSak.java new file mode 100644 index 000000000..323307be4 --- /dev/null +++ b/integrasjon/infotrygd-grunnlag-klient/src/main/java/no/nav/vedtak/felles/integrasjon/infotrygd/saker/v1/respons/InfotrygdSak.java @@ -0,0 +1,40 @@ +package no.nav.vedtak.felles.integrasjon.infotrygd.saker.v1.respons; + +import java.time.LocalDate; + +public record InfotrygdSak(LocalDate iverksatt, SakResultat resultat, LocalDate registrert, Saksnummer sakId, LocalDate mottatt, + SakType type, LocalDate vedtatt, SakValg valg, SakUndervalg undervalg, SakNivå nivaa) { + + + + public String saksBlokkNummer() { + return sakId().blokk() + nrFra(sakId().nr()); + } + + public String saksNummerBlokk() { + return nrFra(sakId().nr()) + sakId().blokk(); + } + + private static String nrFra(int nr) { + return nr < 10 ? "0" + nr : String.valueOf(nr); + } + + + public record Saksnummer(String blokk, int nr) { } + + public interface InfotrygdKode { + String kode(); + String termnavn(); + } + + public record SakValg(String kode, String termnavn) implements InfotrygdKode { } + + public record SakUndervalg(String kode, String termnavn) implements InfotrygdKode { } + + public record SakNivå(String kode, String termnavn) implements InfotrygdKode { } + + public record SakType(String kode, String termnavn) implements InfotrygdKode { } + + public record SakResultat(String kode, String termnavn) implements InfotrygdKode { } + +} diff --git a/integrasjon/infotrygd-grunnlag-klient/src/main/java/no/nav/vedtak/felles/integrasjon/infotrygd/saker/v1/respons/Saker.java b/integrasjon/infotrygd-grunnlag-klient/src/main/java/no/nav/vedtak/felles/integrasjon/infotrygd/saker/v1/respons/Saker.java deleted file mode 100644 index 4069d01e4..000000000 --- a/integrasjon/infotrygd-grunnlag-klient/src/main/java/no/nav/vedtak/felles/integrasjon/infotrygd/saker/v1/respons/Saker.java +++ /dev/null @@ -1,84 +0,0 @@ -package no.nav.vedtak.felles.integrasjon.infotrygd.saker.v1.respons; - -import static com.fasterxml.jackson.annotation.Nulls.AS_EMPTY; - -import java.time.LocalDate; -import java.util.List; - -import com.fasterxml.jackson.annotation.JsonAlias; -import com.fasterxml.jackson.annotation.JsonEnumDefaultValue; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonSetter; - -public record Saker(String info, @JsonProperty("saker") @JsonSetter(nulls = AS_EMPTY) List saker, - @JsonAlias("apneSakerMedLopendeUtbetaling") @JsonSetter(nulls = AS_EMPTY) List løpendeSaker, - AvsluttedeSaker avsluttedeSaker, @JsonProperty("ikkeStartet") @JsonSetter(nulls = AS_EMPTY) List ikkeStartet) { - - public record Sak(LocalDate iverksatt, SakResultat resultat, Saksnummer sakId, String status, SakType type, LocalDate vedtatt) { - - @JsonIgnore - public String getSaksnummer() { - return sakId().blokk() + nrFra(sakId().nr()); - } - - private static String nrFra(int nr) { - return nr < 10 ? "0" + nr : String.valueOf(nr); - } - - public enum SakResultat { - @JsonEnumDefaultValue UKJENT, - A, - AK, - AV, - DI, - DT, - FB, - FI, - H, - HB, - I, - IN, - IS, - IT, - MO, - MT, - NB, - O, - PA, - R, - SB, - TB, - TH, - TO, - UB, - Ø; - } - - public enum SakType { - @JsonEnumDefaultValue UKJENT, - S, - R, - K, - A - } - - public record Saksnummer(String blokk, int nr) { - } - } - - public record AvsluttedeSaker(LocalDate fraOgMed, @JsonProperty("saker") @JsonSetter(nulls = AS_EMPTY) List saker) { - public record AvsluttetSak(LocalDate iverksatt, LocalDate stoppdato, - @JsonProperty("utbetalinger") @JsonSetter(nulls = AS_EMPTY) List utbetalinger) { - } - } - - public record Utbetaling(int gradering, LocalDate utbetaltFom, LocalDate utbetaltTom) { - } - - public record IkkeStartetSak(LocalDate iverksatt, LocalDate registrert) { - } - - public record LøpendeSak(LocalDate iverksatt, @JsonProperty("utbetalinger") @JsonSetter(nulls = AS_EMPTY) List utbetalinger) { - } -} diff --git a/integrasjon/infotrygd-grunnlag-klient/src/test/java/no/nav/vedtak/felles/integrasjon/infotrygd/saker/SerializationTest.java b/integrasjon/infotrygd-grunnlag-klient/src/test/java/no/nav/vedtak/felles/integrasjon/infotrygd/saker/SerializationTest.java index b0caed210..81ae90674 100644 --- a/integrasjon/infotrygd-grunnlag-klient/src/test/java/no/nav/vedtak/felles/integrasjon/infotrygd/saker/SerializationTest.java +++ b/integrasjon/infotrygd-grunnlag-klient/src/test/java/no/nav/vedtak/felles/integrasjon/infotrygd/saker/SerializationTest.java @@ -1,68 +1,38 @@ package no.nav.vedtak.felles.integrasjon.infotrygd.saker; -import no.nav.vedtak.felles.integrasjon.infotrygd.saker.v1.respons.Saker; -import no.nav.vedtak.mapper.json.DefaultJsonMapper; - -import org.junit.jupiter.api.Test; +import static java.nio.charset.StandardCharsets.UTF_8; +import static java.nio.file.Files.readAllBytes; +import static org.junit.jupiter.api.Assertions.assertEquals; import java.nio.file.Paths; import java.time.LocalDate; +import java.util.Arrays; import java.util.List; import java.util.stream.IntStream; -import static java.nio.charset.StandardCharsets.UTF_8; -import static java.nio.file.Files.readAllBytes; -import static java.util.stream.Collectors.toList; -import static org.junit.jupiter.api.Assertions.assertEquals; +import org.junit.jupiter.api.Test; -class SerializationTest { +import no.nav.vedtak.felles.integrasjon.infotrygd.saker.v1.respons.InfotrygdSak; +import no.nav.vedtak.mapper.json.DefaultJsonMapper; - @Test - void saksnummerTest() { - test(saksnummer(42)); - } +class SerializationTest { @Test void sakTest() { test(enSak(1)); } - - @Test - void utbetalingTest() { - test(utbetaling(0)); - } - - @Test - void åpenSakTest() { - test(åpenSak(4)); - } - - @Test - void avsluttedeSakerTest() { - test(avsluttedeSaker(4)); - } - - @Test - void avsluttedeSakTest() { - test(enAvsluttetSak(4)); - } - @Test void sakResponsTest() { - test(sakRespons(2)); + test(sakRespons(2), true); } @Test void faktiskResponsTest() throws Exception { - testJson(jsonFra("rest/svprespons.json"), Saker.class); + testJson(jsonFra("rest/svprespons.json"), true); } - private static void testJson(String json, Class clazz) { - testJson(json, clazz, true); - } - - private static void testJson(String json, Class clazz, boolean log) { - var deser = DefaultJsonMapper.fromJson(json, clazz); + private static void testJson(String json, boolean log) { + var deser = Arrays.stream(DefaultJsonMapper.fromJson(json, InfotrygdSak[].class)).toList(); if (log) { System.out.println("##"); System.out.println(json); @@ -70,13 +40,13 @@ private static void testJson(String json, Class clazz, boolean log) { } } - private static void test(Object object) { - test(object, true); + private static void test(InfotrygdSak object) { + test(List.of(object), true); } - private static void test(Object object, boolean log) { + private static void test(List object, boolean log) { String ser = write(object); - var deser = DefaultJsonMapper.fromJson(ser, object.getClass()); + var deser = Arrays.stream(DefaultJsonMapper.fromJson(ser, InfotrygdSak[].class)).toList(); if (log) { System.out.println("##"); System.out.println("Før serialisering: " + object); @@ -90,60 +60,26 @@ private static String write(Object object) { return DefaultJsonMapper.toJson(object); } - private static Saker.Sak.Saksnummer saksnummer(int n) { - return new Saker.Sak.Saksnummer("B", n); - } - - private static Saker.Sak enSak(int n) { - return new Saker.Sak(plusDays(n), Saker.Sak.SakResultat.FB, saksnummer(n), "FI", Saker.Sak.SakType.S, plusDays(1)); - } - - private static Saker.LøpendeSak åpenSak(int n) { - return new Saker.LøpendeSak(plusDays(n), utbetalinger(n)); - } - - private static Saker.AvsluttedeSaker avsluttedeSaker(int n) { - return new Saker.AvsluttedeSaker(plusDays(n), alleAvsluttedeSaker(n)); - } - - private static Saker.AvsluttedeSaker.AvsluttetSak enAvsluttetSak(int n) { - return new Saker.AvsluttedeSaker.AvsluttetSak(plusDays(n), plusDays(n + 1), utbetalinger(n)); - } - - private static Saker.IkkeStartetSak enIkkeStartetSak(int n) { - return new Saker.IkkeStartetSak(plusDays(n), plusDays(n + 1)); - } - - private static List alleAvsluttedeSaker(int n) { - return IntStream.range(0, n).boxed().map(SerializationTest::enAvsluttetSak).toList(); - } - - private static List utbetalinger(int n) { - return IntStream.range(0, n).boxed().map(SerializationTest::utbetaling).toList(); + private static InfotrygdSak.Saksnummer saksnummer(int n) { + return new InfotrygdSak.Saksnummer("B", n); } - - private static List åpneSaker(int n) { - return IntStream.range(0, n).boxed().map(SerializationTest::åpenSak).toList(); + private static InfotrygdSak enSak(int n) { + return new InfotrygdSak(plusDays(n), new InfotrygdSak.SakResultat("FB", "ferdig") , plusDays(-10), + saksnummer(n), null, new InfotrygdSak.SakType("S", "søknad"), plusDays(1), + new InfotrygdSak.SakValg("FØ", "fødsel"), new InfotrygdSak.SakUndervalg(" ", "annet"), + new InfotrygdSak.SakNivå("TK", "Trygdekontor")); } - private static List saker(int n) { + private static List saker(int n) { return IntStream.range(0, n).boxed().map(SerializationTest::enSak).toList(); } - private static List ikkeStartedeSaker(int n) { - return IntStream.range(0, n).boxed().map(SerializationTest::enIkkeStartetSak).collect(toList()); - } - - private static Saker.Utbetaling utbetaling(int n) { - return new Saker.Utbetaling(80, plusDays(n), plusDays(n + 1)); - } - private static LocalDate plusDays(int n) { return LocalDate.now().plusDays(n); } - private static Saker sakRespons(int n) { - return new Saker("hello", saker(n), åpneSaker(n), avsluttedeSaker(n), ikkeStartedeSaker(n)); + private static List sakRespons(int n) { + return saker(n); } String jsonFra(String fil) throws Exception { diff --git a/integrasjon/infotrygd-grunnlag-klient/src/test/resources/rest/svprespons.json b/integrasjon/infotrygd-grunnlag-klient/src/test/resources/rest/svprespons.json index 1be1d358a..5f36199a0 100644 --- a/integrasjon/infotrygd-grunnlag-klient/src/test/resources/rest/svprespons.json +++ b/integrasjon/infotrygd-grunnlag-klient/src/test/resources/rest/svprespons.json @@ -1,109 +1,101 @@ -{ - "info": null, - "saker": [ - { - "sakId": { - "blokk": "B", - "nr": 1 - }, - "type": "S", - "status": "FB", - "resultat": "I", - "vedtatt": "2012-10-08", - "iverksatt": null - }, - { - "sakId": { - "blokk": "B", - "nr": 4 - }, - "type": "S", - "status": "FB", - "resultat": "I", - "vedtatt": "2012-12-12", - "iverksatt": null - }, - { - "sakId": { - "blokk": "B", - "nr": 5 - }, - "type": "S", - "status": "FB", - "resultat": "HB", - "vedtatt": "2012-12-14", - "iverksatt": null - }, - { - "sakId": { - "blokk": "B", - "nr": 7 - }, - "type": "S", - "status": "FB", - "resultat": "I", - "vedtatt": "2014-09-18", - "iverksatt": null - }, - { - "sakId": { - "blokk": "B", - "nr": 8 - }, - "type": "S", - "status": "FB", - "resultat": "I", - "vedtatt": "2014-12-04", - "iverksatt": null - }, - { - "sakId": { - "blokk": "B", - "nr": 9 - }, - "type": "S", - "status": "FB", - "resultat": "HB", - "vedtatt": "2014-12-12", - "iverksatt": null - }, - { - "sakId": { - "blokk": "B", - "nr": 11 - }, - "type": "S", - "status": "FB", - "resultat": "I", - "vedtatt": "2015-01-13", - "iverksatt": null - }, - { - "sakId": { - "blokk": "B", - "nr": 12 - }, - "type": "S", - "status": "FB", - "resultat": "HB", - "vedtatt": "2015-01-30", - "iverksatt": null - }, - { - "sakId": { - "blokk": "B", - "nr": 13 - }, - "type": "S", - "status": "FB", - "resultat": "HB", - "vedtatt": "2015-02-10", - "iverksatt": null - } - ], - "apneSakerMedLopendeUtbetaling": [], - "avsluttedeSaker": { - "fraOgMed": "2018-11-07", - "saker": [] - } -} \ No newline at end of file +[ + { + "sakId": { + "blokk": "B", + "nr": 1 + }, + "type": { "kode": "S", "termnavn": "Søknad" }, + "resultat": { "kode": "I", "termnavn": "ferdig" }, + "registrert": "2012-01-02", + "vedtatt": "2012-10-08", + "iverksatt": null + }, + { + "sakId": { + "blokk": "B", + "nr": 4 + }, + "type": { "kode": "S", "termnavn": "Søknad" }, + "resultat": { "kode": "I", "termnavn": "ferdig" }, + "registrert": "2012-01-02", + "vedtatt": "2012-12-12", + "iverksatt": null + }, + { + "sakId": { + "blokk": "B", + "nr": 5 + }, + "type": { "kode": "S", "termnavn": "Søknad" }, + "resultat": { "kode": "HB", "termnavn": "henlagt" }, + "registrert": "2012-01-02", + "vedtatt": "2012-12-14", + "iverksatt": null + }, + { + "sakId": { + "blokk": "B", + "nr": 7 + }, + "type": { "kode": "S", "termnavn": "Søknad" }, + "resultat": { "kode": "I", "termnavn": "ferdig" }, + "registrert": "2014-01-02", + "vedtatt": "2014-09-18", + "iverksatt": null + }, + { + "sakId": { + "blokk": "B", + "nr": 8 + }, + "type": { "kode": "S", "termnavn": "Søknad" }, + "resultat": { "kode": "I", "termnavn": "ferdig" }, + "registrert": "2014-01-02", + "vedtatt": "2014-12-04", + "iverksatt": null + }, + { + "sakId": { + "blokk": "B", + "nr": 9 + }, + "type": { "kode": "S", "termnavn": "Søknad" }, + "resultat": { "kode": "HB", "termnavn": "henlagt" }, + "registrert": "2014-01-02", + "vedtatt": "2014-12-12", + "iverksatt": null + }, + { + "sakId": { + "blokk": "B", + "nr": 11 + }, + "type": { "kode": "S", "termnavn": "Søknad" }, + "resultat": { "kode": "I", "termnavn": "ferdig" }, + "registrert": "2015-01-02", + "vedtatt": "2015-01-13", + "iverksatt": null + }, + { + "sakId": { + "blokk": "B", + "nr": 12 + }, + "type": { "kode": "S", "termnavn": "Søknad" }, + "resultat": { "kode": "HB", "termnavn": "henlagt" }, + "registrert": "2015-01-02", + "vedtatt": "2015-01-30", + "iverksatt": null + }, + { + "sakId": { + "blokk": "B", + "nr": 13 + }, + "type": { "kode": "S", "termnavn": "Søknad" }, + "resultat": { "kode": "HB", "termnavn": "henlagt" }, + "registrert": "2015-01-02", + "vedtatt": "2015-02-10", + "iverksatt": null + } +]