diff --git a/integrasjon/pdl-klient/src/main/java/no/nav/vedtak/felles/integrasjon/pdl/IgnoreNotFoundUtil.java b/integrasjon/pdl-klient/src/main/java/no/nav/vedtak/felles/integrasjon/pdl/IgnoreNotFoundUtil.java deleted file mode 100644 index 70340eb3d..000000000 --- a/integrasjon/pdl-klient/src/main/java/no/nav/vedtak/felles/integrasjon/pdl/IgnoreNotFoundUtil.java +++ /dev/null @@ -1,27 +0,0 @@ -package no.nav.vedtak.felles.integrasjon.pdl; - -import static org.apache.http.HttpStatus.SC_NOT_FOUND; - -import java.util.function.Supplier; - -class IgnoreNotFoundUtil { - - private IgnoreNotFoundUtil() { - - } - - static V exec(Supplier supplier, boolean ignoreNotFound) { - return exec(supplier, ignoreNotFound, null); - } - - static V exec(Supplier supplier, boolean ignoreNotFound, V defaultValue) { - try { - return supplier.get(); - } catch (PdlException e) { - if (SC_NOT_FOUND == e.getStatus() && ignoreNotFound) { - return defaultValue; - } - throw e; - } - } -} diff --git a/integrasjon/pdl-klient/src/main/java/no/nav/vedtak/felles/integrasjon/pdl/JerseyPdlKlient.java b/integrasjon/pdl-klient/src/main/java/no/nav/vedtak/felles/integrasjon/pdl/JerseyPdlKlient.java index ffcee9fc3..dded63436 100644 --- a/integrasjon/pdl-klient/src/main/java/no/nav/vedtak/felles/integrasjon/pdl/JerseyPdlKlient.java +++ b/integrasjon/pdl-klient/src/main/java/no/nav/vedtak/felles/integrasjon/pdl/JerseyPdlKlient.java @@ -2,7 +2,7 @@ import static javax.ws.rs.client.Entity.json; import static javax.ws.rs.core.MediaType.APPLICATION_JSON_TYPE; -import static no.nav.vedtak.felles.integrasjon.pdl.IgnoreNotFoundUtil.exec; +import static org.apache.http.HttpStatus.SC_NOT_FOUND; import java.net.URI; import java.util.List; @@ -31,6 +31,7 @@ import no.nav.pdl.HentIdenterQueryRequest; import no.nav.pdl.HentIdenterQueryResponse; import no.nav.pdl.HentPersonQueryRequest; +import no.nav.pdl.HentPersonQueryResponse; import no.nav.pdl.Identliste; import no.nav.pdl.IdentlisteResponseProjection; import no.nav.pdl.Person; @@ -91,14 +92,26 @@ public GeografiskTilknytning hentGT(HentGeografiskTilknytningQueryRequest q, Geo return query(q, p, HentGeografiskTilknytningQueryResponse.class).hentGeografiskTilknytning(); } + @Override + public Person hentPerson(HentPersonQueryRequest q, PersonResponseProjection p) { + return query(q, p, HentPersonQueryResponse.class).hentPerson(); + } + @Override public Person hentPerson(HentPersonQueryRequest q, PersonResponseProjection p, boolean ignoreNotFound) { - return exec(() -> hentPerson(q, p), ignoreNotFound); + try { + return hentPerson(q, p); + } catch (PdlException e) { + if (e.getStatus() == SC_NOT_FOUND && ignoreNotFound) { + return null; + } + throw e; + } } @Override - public Identliste hentIdenter(HentIdenterQueryRequest q, IdentlisteResponseProjection p, boolean ignoreNotFound) { - return exec(() -> query(q, p, HentIdenterQueryResponse.class).hentIdenter(), ignoreNotFound); + public Identliste hentIdenter(HentIdenterQueryRequest q, IdentlisteResponseProjection p) { + return query(q, p, HentIdenterQueryResponse.class).hentIdenter(); } @Override diff --git a/integrasjon/pdl-klient/src/main/java/no/nav/vedtak/felles/integrasjon/pdl/Pdl.java b/integrasjon/pdl-klient/src/main/java/no/nav/vedtak/felles/integrasjon/pdl/Pdl.java index 1b71017f6..2237995e7 100644 --- a/integrasjon/pdl-klient/src/main/java/no/nav/vedtak/felles/integrasjon/pdl/Pdl.java +++ b/integrasjon/pdl-klient/src/main/java/no/nav/vedtak/felles/integrasjon/pdl/Pdl.java @@ -49,15 +49,9 @@ public interface Pdl extends GraphQLQueryable { List hentIdenterBolkResults(HentIdenterBolkQueryRequest q, HentIdenterBolkResultResponseProjection p); - default Identliste hentIdenter(HentIdenterQueryRequest q, IdentlisteResponseProjection p) { - return hentIdenter(q, p, false); - } - - Identliste hentIdenter(HentIdenterQueryRequest q, IdentlisteResponseProjection p, boolean ignoreNotFound); + Identliste hentIdenter(HentIdenterQueryRequest q, IdentlisteResponseProjection p); - default Person hentPerson(HentPersonQueryRequest q, PersonResponseProjection p) { - return hentPerson(q, p, false); - } + Person hentPerson(HentPersonQueryRequest q, PersonResponseProjection p); Person hentPerson(HentPersonQueryRequest q, PersonResponseProjection p, boolean ignoreNotFound); diff --git a/integrasjon/pdl-klient/src/main/java/no/nav/vedtak/felles/integrasjon/pdl/PdlKlient.java b/integrasjon/pdl-klient/src/main/java/no/nav/vedtak/felles/integrasjon/pdl/PdlKlient.java index ff24d7e1d..d78b11584 100644 --- a/integrasjon/pdl-klient/src/main/java/no/nav/vedtak/felles/integrasjon/pdl/PdlKlient.java +++ b/integrasjon/pdl-klient/src/main/java/no/nav/vedtak/felles/integrasjon/pdl/PdlKlient.java @@ -7,15 +7,15 @@ import static com.fasterxml.jackson.databind.SerializationFeature.FAIL_ON_EMPTY_BEANS; import static com.fasterxml.jackson.databind.SerializationFeature.WRITE_DATES_AS_TIMESTAMPS; import static com.fasterxml.jackson.databind.SerializationFeature.WRITE_DURATIONS_AS_TIMESTAMPS; -import static no.nav.vedtak.felles.integrasjon.pdl.IgnoreNotFoundUtil.exec; import static org.apache.http.HttpStatus.SC_ACCEPTED; import static org.apache.http.HttpStatus.SC_INTERNAL_SERVER_ERROR; +import static org.apache.http.HttpStatus.SC_NOT_FOUND; import static org.apache.http.HttpStatus.SC_NOT_MODIFIED; import static org.apache.http.HttpStatus.SC_NO_CONTENT; import java.io.IOException; +import java.io.UnsupportedEncodingException; import java.net.URI; -import java.nio.charset.Charset; import java.util.List; import java.util.TimeZone; @@ -47,6 +47,7 @@ import no.nav.pdl.HentIdenterQueryRequest; import no.nav.pdl.HentIdenterQueryResponse; import no.nav.pdl.HentPersonQueryRequest; +import no.nav.pdl.HentPersonQueryResponse; import no.nav.pdl.Identliste; import no.nav.pdl.IdentlisteResponseProjection; import no.nav.pdl.Person; @@ -101,8 +102,13 @@ public GeografiskTilknytning hentGT(HentGeografiskTilknytningQueryRequest q, Geo } @Override - public Identliste hentIdenter(HentIdenterQueryRequest q, IdentlisteResponseProjection p, boolean ignoreNotFound) { - return exec(() -> query(new GraphQLRequest(q, p), HentIdenterQueryResponse.class).hentIdenter(), ignoreNotFound); + public Person hentPerson(HentPersonQueryRequest q, PersonResponseProjection p) { + return query(new GraphQLRequest(q, p), HentPersonQueryResponse.class).hentPerson(); + } + + @Override + public Identliste hentIdenter(HentIdenterQueryRequest q, IdentlisteResponseProjection p) { + return query(new GraphQLRequest(q, p), HentIdenterQueryResponse.class).hentIdenter(); } @Override @@ -113,11 +119,7 @@ public List hentIdenterBolkResults(HentIdenterBolkQueryRe @Override public > T query(GraphQLOperationRequest q, GraphQLResponseProjection p, Class clazz) { return query(new GraphQLRequest(q, p), clazz); - } - @Override - public Person hentPerson(HentPersonQueryRequest q, PersonResponseProjection p, boolean ignoreNotFound) { - return exec(() -> hentPerson(q, p), ignoreNotFound); } private > T query(GraphQLRequest req, Class clazz) { @@ -129,10 +131,14 @@ private > T query(GraphQLRequest req, Class clazz) } private HttpPost post(GraphQLRequest req) { - var post = new HttpPost(endpoint); - post.setEntity(new StringEntity(req.toHttpJsonBody(), Charset.defaultCharset())); - post.setHeader("TEMA", tema); - return post; + try { + var post = new HttpPost(endpoint); + post.setEntity(new StringEntity(req.toHttpJsonBody())); + post.setHeader("TEMA", tema); + return post; + } catch (UnsupportedEncodingException e) { + throw new IllegalArgumentException(e); + } } private > T spør(HttpPost req, ObjectReaderResponseHandler responseHandler) { @@ -173,4 +179,16 @@ public String toString() { return getClass().getSimpleName() + " [endpoint=" + endpoint + ", restKlient=" + restKlient + ", errorHandler=" + errorHandler + "]"; } + @Override + public Person hentPerson(HentPersonQueryRequest q, PersonResponseProjection p, boolean ignoreNotFound) { + try { + return hentPerson(q, p); + } catch (PdlException e) { + if (e.getStatus() == SC_NOT_FOUND && ignoreNotFound) { + return null; + } + throw e; + } + } + }