Skip to content

Commit

Permalink
Utvider Ettersendelse med pleietrengende og type (#422)
Browse files Browse the repository at this point in the history
* Utvider Ettersendelse med pleietrengende og type

* Not Notnull

* TODO
  • Loading branch information
oyvemb authored Mar 21, 2024
1 parent 7ee3193 commit 4994a73
Show file tree
Hide file tree
Showing 6 changed files with 123 additions and 19 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -32,36 +32,45 @@ public class Ettersendelse implements Innsending {
@Valid
private final Versjon versjon;


@JsonProperty(value="mottattDato")
@Valid
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSX", timezone = "UTC")
private final ZonedDateTime mottattDato;


@JsonProperty(value="søker", required = true)
@Valid
@NotNull
private final Søker søker;


@JsonProperty(value="ytelse", required = true)
@Valid
@NotNull
private final Ytelse ytelse;

@JsonProperty(value="pleietrengende")
@Valid
private final Pleietrengende pleietrengende;

@JsonProperty(value="type") //TODO set required = true og @NotNull
@Valid
private final EttersendelseType type;

@JsonCreator
private Ettersendelse(
@JsonProperty("søknadId") SøknadId søknadId,
@JsonProperty("versjon") Versjon versjon,
@JsonProperty("mottattDato") ZonedDateTime mottattDato,
@JsonProperty("søker") Søker søker,
@JsonProperty("ytelse") Ytelse ytelse) {
@JsonProperty("søknadId") SøknadId søknadId,
@JsonProperty("versjon") Versjon versjon,
@JsonProperty("mottattDato") ZonedDateTime mottattDato,
@JsonProperty("søker") Søker søker,
@JsonProperty("ytelse") Ytelse ytelse,
@JsonProperty("pleietrengende") Pleietrengende pleietrengende,
@JsonProperty("type") EttersendelseType type) {
this.søknadId = søknadId;
this.versjon = versjon;
this.mottattDato = mottattDato;
this.søker = søker;
this.ytelse = ytelse;
this.pleietrengende = pleietrengende;
this.type = type;
}

@Override
Expand All @@ -87,7 +96,15 @@ public Versjon getVersjon() {
public Ytelse getYtelse() {
return ytelse;
}


public Pleietrengende getPleietrengende() {
return pleietrengende;
}

public EttersendelseType getType() {
return type;
}

public static Builder builder() {
return new Builder();
}
Expand Down Expand Up @@ -122,6 +139,8 @@ public static final class Builder {
private ZonedDateTime mottattDato;
private Søker søker;
private Ytelse ytelse;
private Pleietrengende pleietrengende;
private EttersendelseType type;

private Builder() {
}
Expand All @@ -146,20 +165,32 @@ public Builder ytelse(Ytelse ytelse) {
return this;
}

public Builder pleietrengende(Pleietrengende pleietrengende) {
this.pleietrengende = pleietrengende;
return this;
}

public Builder type(EttersendelseType type) {
this.type = type;
return this;
}

public Builder json(String json) {
this.json = json;
return this;
}

public Ettersendelse build() {
Ettersendelse ettetrsendelse = (json == null) ? new Ettersendelse(
søknadId,
versjon,
mottattDato,
søker,
ytelse) : SerDes.deserialize(json);
validator.forsikreValidert(ettetrsendelse);
return ettetrsendelse;
Ettersendelse ettersendelse = (json == null) ? new Ettersendelse(
søknadId,
versjon,
mottattDato,
søker,
ytelse,
pleietrengende,
type) : SerDes.deserialize(json);
validator.forsikreValidert(ettersendelse);
return ettersendelse;
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package no.nav.k9.ettersendelse;

import com.fasterxml.jackson.annotation.JsonAutoDetect;

@JsonAutoDetect(getterVisibility = JsonAutoDetect.Visibility.NONE, setterVisibility = JsonAutoDetect.Visibility.NONE, fieldVisibility = JsonAutoDetect.Visibility.ANY)
public enum EttersendelseType {
LEGEERKLÆRING,
ANNET
}
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ public List<Feil> valider(Ettersendelse ettersendelse) {
validerMottattDato(ettersendelse.getMottattDato(), feil);
validerSøker(ettersendelse.getSøker(), feil);
validerYtelse(ettersendelse.getYtelse(), feil);
//TODO valider type og pleietrengende når feltene tas i bruk

return feil;
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
package no.nav.k9.ettersendelse;

import java.util.Objects;

import com.fasterxml.jackson.annotation.JsonAlias;
import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;

import jakarta.validation.Valid;
import jakarta.validation.constraints.AssertTrue;
import jakarta.validation.constraints.NotNull;
import no.nav.k9.søknad.felles.type.NorskIdentitetsnummer;
import no.nav.k9.søknad.felles.type.Person;
import no.nav.k9.søknad.felles.type.PersonIdent;

@JsonIgnoreProperties(ignoreUnknown = true)
@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.NONE, getterVisibility = JsonAutoDetect.Visibility.NONE, setterVisibility = JsonAutoDetect.Visibility.NONE, isGetterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE)
public class Pleietrengende implements Person {

@JsonAlias({ "fødselsnummer", "norskIdentifikator", "identitetsnummer", "fnr" })
@JsonProperty(value = "norskIdentitetsnummer", required = true)
@NotNull
@Valid
private NorskIdentitetsnummer norskIdentitetsnummer;

@JsonCreator
public Pleietrengende(@JsonProperty(value = "norskIdentitetsnummer", required = true) @JsonAlias({ "fødselsnummer", "norskIdentifikator", "identitetsnummer", "fnr" }) NorskIdentitetsnummer norskIdentitetsnummer) {
this.norskIdentitetsnummer = Objects.requireNonNull(norskIdentitetsnummer, "norskIdentitetsnummer");
}

@Override
public PersonIdent getPersonIdent() {
return norskIdentitetsnummer;
}

@AssertTrue(message = "norskIdentitetsnummer må være satt")
private boolean isOk() {
return norskIdentitetsnummer != null && norskIdentitetsnummer.getVerdi() != null;
}

@Override
public int hashCode() {
return Objects.hash(norskIdentitetsnummer);
}

@Override
public boolean equals(Object obj) {
if (obj == this)
return true;
if (obj == null || !getClass().equals(obj.getClass()))
return false;
var other = (Pleietrengende) obj;
return Objects.equals(getPersonIdent(), other.getPersonIdent());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@ static Ettersendelse.Builder komplettBuilder() {
.søker(new Søker(NorskIdentitetsnummer.of("11111111111")))
.mottattDato(ZonedDateTime.parse("2019-10-20T07:15:36.124Z"))
.søknadId(SøknadId.of("123-123-123"))
.ytelse(Ytelse.valueOf("PLEIEPENGER_SYKT_BARN"));
.ytelse(Ytelse.valueOf("PLEIEPENGER_SYKT_BARN"))
.pleietrengende(new Pleietrengende(NorskIdentitetsnummer.of("22222222222")))
.type(EttersendelseType.ANNET);
}
}
6 changes: 5 additions & 1 deletion ettersendelse/src/test/resources/ettersendelse.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,9 @@
"søker": {
"norskIdentitetsnummer": "11111111111"
},
"ytelse": "PLEIEPENGER_SYKT_BARN"
"ytelse": "PLEIEPENGER_SYKT_BARN",
"pleietrengende": {
"norskIdentitetsnummer": "22222222222"
},
"type": "ANNET"
}

0 comments on commit 4994a73

Please sign in to comment.