diff --git a/felles/mapper/src/main/java/no/nav/vedtak/mapper/json/DefaultJsonMapper.java b/felles/mapper/src/main/java/no/nav/vedtak/mapper/json/DefaultJsonMapper.java index 772622b90..80659fe40 100644 --- a/felles/mapper/src/main/java/no/nav/vedtak/mapper/json/DefaultJsonMapper.java +++ b/felles/mapper/src/main/java/no/nav/vedtak/mapper/json/DefaultJsonMapper.java @@ -3,6 +3,7 @@ import java.io.IOException; import java.net.URL; import java.util.List; +import java.util.Map; import java.util.TimeZone; import com.fasterxml.jackson.annotation.JsonInclude; @@ -74,6 +75,22 @@ public static T fromJson(URL json, Class clazz) { } } + public static List listFromJson(String json, Class clazz) { + try { + return MAPPER.readerForListOf(clazz).readValue(json); + } catch (IOException e) { + throw deserializationException(e); + } + } + + public static Map mapFromJson(String json, Class clazz) { + try { + return MAPPER.readerForMapOf(clazz).readValue(json); + } catch (IOException e) { + throw deserializationException(e); + } + } + public static JsonNode treeFromJson(String json) { try { return MAPPER.readTree(json); 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 bf4646ffc..56d5bf6ed 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 @@ -2,7 +2,6 @@ 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; @@ -45,10 +44,8 @@ public List hentGrunnlag(String fnr, LocalDate fom, LocalDate tom) { .queryParam("fnr", fnr) .queryParam("fom", konverter(fom)) .queryParam("tom", konverter(tom)).build(); - var grunnlag = restClient.send(RestRequest.newGET(path, restConfig), Grunnlag[].class); - return Arrays.asList(grunnlag); + return restClient.sendReturnList(RestRequest.newGET(path, restConfig), Grunnlag.class); } catch (Exception e) { - LOG.warn("Feil ved oppslag mot {}, returnerer ingen grunnlag", restConfig.endpoint(), 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); } diff --git a/integrasjon/infotrygd-grunnlag-klient/src/test/java/no/nav/vedtak/felles/integrasjon/infotrygd/grunnlag/DeserializationTest.java b/integrasjon/infotrygd-grunnlag-klient/src/test/java/no/nav/vedtak/felles/integrasjon/infotrygd/grunnlag/DeserializationTest.java index 434e93230..afd355938 100644 --- a/integrasjon/infotrygd-grunnlag-klient/src/test/java/no/nav/vedtak/felles/integrasjon/infotrygd/grunnlag/DeserializationTest.java +++ b/integrasjon/infotrygd-grunnlag-klient/src/test/java/no/nav/vedtak/felles/integrasjon/infotrygd/grunnlag/DeserializationTest.java @@ -3,7 +3,6 @@ import static org.assertj.core.api.Assertions.assertThat; import java.time.LocalDate; -import java.util.Arrays; import org.junit.jupiter.api.Test; @@ -98,7 +97,7 @@ class DeserializationTest { @Test void test_utbetalt() { - var grunnlagene = Arrays.asList(DefaultJsonMapper.fromJson(SAMPLE, Grunnlag[].class)); + var grunnlagene = DefaultJsonMapper.listFromJson(SAMPLE, Grunnlag.class); var grunnlag = grunnlagene.get(0); assertThat(grunnlag.status().kode()).isEqualTo(StatusKode.L); assertThat(grunnlag.arbeidsforhold().get(0).orgnr().orgnr()).isEqualTo("888888888"); diff --git a/integrasjon/rest-klient/src/main/java/no/nav/vedtak/felles/integrasjon/rest/RestClient.java b/integrasjon/rest-klient/src/main/java/no/nav/vedtak/felles/integrasjon/rest/RestClient.java index 2e15e3262..208eeb495 100644 --- a/integrasjon/rest-klient/src/main/java/no/nav/vedtak/felles/integrasjon/rest/RestClient.java +++ b/integrasjon/rest-klient/src/main/java/no/nav/vedtak/felles/integrasjon/rest/RestClient.java @@ -2,6 +2,8 @@ import java.net.HttpURLConnection; import java.net.http.HttpResponse; +import java.util.List; +import java.util.Map; import java.util.Optional; import java.util.Set; import java.util.function.Predicate; @@ -36,6 +38,16 @@ public Optional sendReturnOptional(RestRequest request, Class clazz) { return Optional.ofNullable(mapResponse(response, String::isEmpty, clazz)); } + public List sendReturnList(RestRequest request, Class clazz) { + var response= httpklient.send(request); + return DefaultJsonMapper.listFromJson(response, clazz); + } + + public Map sendReturnMap(RestRequest request, Class clazz) { + var response= httpklient.send(request); + return DefaultJsonMapper.mapFromJson(response, clazz); + } + public byte[] sendReturnByteArray(RestRequest request) { return httpklient.sendReturnByteArray(request); }