Skip to content

Commit

Permalink
Fjerne GET intrygd-grunnlag (#1348)
Browse files Browse the repository at this point in the history
* Fjerne GET intrygd-grunnlag

* TFP-5660 oppdatere infotrygd-saker

* Tillate litt mer word
  • Loading branch information
jolarsen committed Mar 12, 2024
1 parent e0510e5 commit 4c3974c
Show file tree
Hide file tree
Showing 16 changed files with 264 additions and 344 deletions.
4 changes: 2 additions & 2 deletions felles/util/src/main/java/no/nav/vedtak/konfig/Tid.java
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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.
* <p>
* Godtar i tillegg til alt som er tillatt i navn og adresser også flere andre tegn som er relevante.
* <p>
* 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".
*
Expand Down
Original file line number Diff line number Diff line change
@@ -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);

Expand All @@ -33,32 +29,6 @@ protected AbstractInfotrygdGrunnlag(RestClient client) {
this.restConfig = RestConfig.forClient(this.getClass());
}

@Override
public List<Grunnlag> 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<Grunnlag> 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<Grunnlag> hentGrunnlag(GrunnlagRequest request) {
try {
Expand All @@ -82,17 +52,4 @@ public List<Grunnlag> 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;
}

}
Original file line number Diff line number Diff line change
@@ -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<Grunnlag> hentGrunnlag(String fnr, LocalDate fom, LocalDate tom);

List<Grunnlag> hentGrunnlagFailSoft(String fnr, LocalDate fom, LocalDate tom);

/*
* POST
Expand Down
Original file line number Diff line number Diff line change
@@ -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();
}

}
Original file line number Diff line number Diff line change
@@ -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 {
}
Original file line number Diff line number Diff line change
@@ -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();

}
Original file line number Diff line number Diff line change
@@ -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 {

}
Original file line number Diff line number Diff line change
@@ -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 {
}
Original file line number Diff line number Diff line change
@@ -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 {

}
Original file line number Diff line number Diff line change
@@ -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<InfotrygdSak> 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<InfotrygdSak> 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();
}
}

}
Original file line number Diff line number Diff line change
@@ -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<InfotrygdSak> hentSaker(GrunnlagRequest request);

List<InfotrygdSak> hentSakerFailSoft(GrunnlagRequest request);

}
Original file line number Diff line number Diff line change
@@ -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 { }

}

This file was deleted.

0 comments on commit 4c3974c

Please sign in to comment.