From fda65acb818c5fa3b148a5f29000e18cd2cbe26e Mon Sep 17 00:00:00 2001 From: Petter Ekern <43809623+pekern@users.noreply.github.com> Date: Thu, 12 Sep 2024 13:50:26 +0200 Subject: [PATCH] =?UTF-8?q?TFP-5849:=20Mulighet=20for=20=C3=A5=20returnere?= =?UTF-8?q?=20respons=20med=20vilk=C3=A5rsvurderingen=20(#547)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../response/v1/TilstandResponse.java | 20 +++++ .../response/v1/Vilk\303\245rResponse.java" | 88 +++++++++++++++++++ 2 files changed, 108 insertions(+) create mode 100644 "kontrakt/src/main/java/no/nav/folketrygdloven/kalkulus/response/v1/Vilk\303\245rResponse.java" diff --git a/kontrakt/src/main/java/no/nav/folketrygdloven/kalkulus/response/v1/TilstandResponse.java b/kontrakt/src/main/java/no/nav/folketrygdloven/kalkulus/response/v1/TilstandResponse.java index 893bcdfe..e7cb928e 100644 --- a/kontrakt/src/main/java/no/nav/folketrygdloven/kalkulus/response/v1/TilstandResponse.java +++ b/kontrakt/src/main/java/no/nav/folketrygdloven/kalkulus/response/v1/TilstandResponse.java @@ -44,6 +44,10 @@ public class TilstandResponse implements KalkulusRespons { @Valid private Vilkårsavslagsårsak vilkårsavslagsårsak; + @JsonProperty("vilkårResultat") + @Valid + private VilkårResponse vilkårResultat; + public TilstandResponse() { // default ctor } @@ -72,6 +76,18 @@ public TilstandResponse(@Valid UUID eksternReferanse, this.resultatkode = resultatkode; } + public TilstandResponse(@Valid UUID eksternReferanse, + @Valid List avklaringsbehovMedTilstandDto, + KalkulusResultatKode resultatkode, @Valid Boolean vilkarOppfylt, + @Valid Vilkårsavslagsårsak vilkårsavslagsårsak, VilkårResponse vilkårResultat) { + this.eksternReferanse = eksternReferanse; + this.avklaringsbehovMedTilstandDto = avklaringsbehovMedTilstandDto; + this.vilkarOppfylt = vilkarOppfylt; + this.vilkårsavslagsårsak = vilkårsavslagsårsak; + this.resultatkode = resultatkode; + this.vilkårResultat = vilkårResultat; + } + public TilstandResponse medVilkårResultat(boolean resultat) { vilkarOppfylt = resultat; return this; @@ -111,4 +127,8 @@ public UUID getEksternReferanse() { public KalkulusResultatKode getResultatkode() { return resultatkode; } + + public VilkårResponse getVilkårResultat() { + return vilkårResultat; + } } diff --git "a/kontrakt/src/main/java/no/nav/folketrygdloven/kalkulus/response/v1/Vilk\303\245rResponse.java" "b/kontrakt/src/main/java/no/nav/folketrygdloven/kalkulus/response/v1/Vilk\303\245rResponse.java" new file mode 100644 index 00000000..db940bb0 --- /dev/null +++ "b/kontrakt/src/main/java/no/nav/folketrygdloven/kalkulus/response/v1/Vilk\303\245rResponse.java" @@ -0,0 +1,88 @@ +package no.nav.folketrygdloven.kalkulus.response.v1; + +import com.fasterxml.jackson.annotation.JsonAutoDetect; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonProperty; + +import jakarta.validation.Valid; +import jakarta.validation.constraints.AssertTrue; +import jakarta.validation.constraints.NotNull; +import no.nav.folketrygdloven.kalkulus.kodeverk.Vilkårsavslagsårsak; + +/** + * Beskriver resultatet av vilkårsvurderingen samt sporing av både regelkjøring og input til denne vurderingen + */ + +@JsonIgnoreProperties(ignoreUnknown = true) +@JsonInclude(value = Include.NON_ABSENT, content = Include.NON_EMPTY) +@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.NONE, getterVisibility = JsonAutoDetect.Visibility.NONE, setterVisibility = JsonAutoDetect.Visibility.NONE, isGetterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE) +public class VilkårResponse { + + @JsonProperty(value = "erVilkarOppfylt") + @Valid + @NotNull + private Boolean erVilkarOppfylt; + + @JsonProperty(value = "regelEvalueringSporing") + @Valid + @NotNull + private String regelEvalueringSporing; + + @JsonProperty(value = "regelInputSporing") + @Valid + @NotNull + private String regelInputSporing; + + @JsonProperty(value = "regelVersjon") + @Valid + @NotNull + private String regelVersjon; + + @JsonProperty("avslagsÅrsak") + @Valid + private Vilkårsavslagsårsak avslagsÅrsak; + + public VilkårResponse() { + // default ctor + } + + public VilkårResponse(Boolean erVilkarOppfylt, String regelEvalueringSporing, + String regelInputSporing, String regelVersjon, + Vilkårsavslagsårsak avslagsÅrsak) { + this.erVilkarOppfylt = erVilkarOppfylt; + this.regelEvalueringSporing = regelEvalueringSporing; + this.regelInputSporing = regelInputSporing; + this.regelVersjon = regelVersjon; + this.avslagsÅrsak = avslagsÅrsak; + } + + public Boolean getErVilkarOppfylt() { + return erVilkarOppfylt; + } + + public String getRegelEvalueringSporing() { + return regelEvalueringSporing; + } + + public String getRegelInputSporing() { + return regelInputSporing; + } + + public String getRegelVersjon() { + return regelVersjon; + } + + public Vilkårsavslagsårsak getAvslagsÅrsak() { + return avslagsÅrsak; + } + + @AssertTrue(message = "Krever avslagsårsak når vilkåret ikke er oppfylt") + public boolean isSjekkOmHarAvslagsårsak() { + if (erVilkarOppfylt != null && !erVilkarOppfylt) { + return avslagsÅrsak != null; + } + return true; + } +}