Skip to content

Commit

Permalink
støtte for ettersendelse som en del av PsbSøknadsinnhold (#435)
Browse files Browse the repository at this point in the history
* støtte for ettersendelse som en del av PsbSøknadsinnhold
  • Loading branch information
qtips authored Apr 30, 2024
1 parent 64e294b commit 164bec7
Show file tree
Hide file tree
Showing 4 changed files with 61 additions and 19 deletions.
4 changes: 4 additions & 0 deletions innsyn/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,10 @@
<groupId>no.nav.k9</groupId>
<artifactId>soknad</artifactId>
</dependency>
<dependency>
<groupId>no.nav.k9</groupId>
<artifactId>ettersendelse</artifactId>
</dependency>
<dependency>
<groupId>no.nav.k9</groupId>
<artifactId>konstant</artifactId>
Expand Down
69 changes: 51 additions & 18 deletions innsyn/src/main/java/no/nav/k9/innsyn/PsbSøknadsinnhold.java
Original file line number Diff line number Diff line change
@@ -1,22 +1,23 @@
package no.nav.k9.innsyn;

import jakarta.validation.Valid;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Pattern;
import jakarta.validation.constraints.Size;

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 com.fasterxml.jackson.annotation.JsonTypeName;

import jakarta.validation.Valid;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Pattern;
import jakarta.validation.constraints.Size;
import no.nav.k9.ettersendelse.Ettersendelse;
import no.nav.k9.søknad.Søknad;

/**
* Innholdet til en ny søknad som har kommet inn i k9-sak.
*
* <p>
* {@code PsbSøknadsinnhold} identifiseres av {@code journalpostId}.
*
* <p>
* Merk at man skal bruke {@code søkerAktørId} og {@code pleietrengendeAktørId} fremfor å hente
* identene direkte fra søknaden. Dette er for å støtte bytte av D-/fødselsnummer.
*/
Expand Down Expand Up @@ -46,37 +47,69 @@ public class PsbSøknadsinnhold implements InnsynHendelseData {
@Pattern(regexp = "^\\d+$", message = "pleietrengendeAktørId [${validatedValue}] matcher ikke tillatt pattern [{regexp}]")
private String pleietrengendeAktørId;

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



@JsonProperty(value = "ettersendelse")
@Valid
private Ettersendelse ettersendelse;

protected PsbSøknadsinnhold() {

}

public PsbSøknadsinnhold(String journalpostId, String søkerAktørId, String pleietrengendeAktørId, Søknad søknad) {

@JsonCreator
public PsbSøknadsinnhold(
@JsonProperty(value = "journalpostId", required = true)
String journalpostId,
@JsonProperty(value = "søkerAktørId", required = true)
String søkerAktørId,
@JsonProperty(value = "pleietrengendeAktørId", required = true)
String pleietrengendeAktørId,
@JsonProperty(value = "søknad")
Søknad søknad,
@JsonProperty(value = "ettersendelse")
Ettersendelse ettersendelse) {
this.journalpostId = journalpostId;
this.søkerAktørId = søkerAktørId;
this.pleietrengendeAktørId = pleietrengendeAktørId;

validerInput(søknad, ettersendelse);

this.søknad = søknad;
this.ettersendelse = ettersendelse;
}



private static void validerInput(Søknad søknad, Ettersendelse ettersendelse) {
if (søknad == null && ettersendelse == null) {
throw new IllegalArgumentException("Både søknad og ettersendelse kan ikke være null");
}

if (ettersendelse != null && søknad != null) {
throw new IllegalArgumentException("Kan ikke sette både søknad og ettersendelse");
}
}


public String getJournalpostId() {
return journalpostId;
}

public String getSøkerAktørId() {
return søkerAktørId;
}

public String getPleietrengendeAktørId() {
return pleietrengendeAktørId;
}

public Søknad getSøknad() {
return søknad;
}

public Ettersendelse getEttersendelse() {
return ettersendelse;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ public class PsbSøknaddataHendelseTest {
@Test
public void kanLageOgLeseHendelse() {
final var søknad = lagGyldigSøknad();
final PsbSøknadsinnhold data = new PsbSøknadsinnhold("123", "1111", "2222", søknad);
final PsbSøknadsinnhold data = new PsbSøknadsinnhold("123", "1111", "2222", søknad, null);
final InnsynHendelse<PsbSøknadsinnhold> hendelse = new InnsynHendelse<>(ZonedDateTime.now(), data);
final String json = JsonUtils.toString(hendelse);

Expand Down
5 changes: 5 additions & 0 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,11 @@
<artifactId>soknad</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>no.nav.k9</groupId>
<artifactId>ettersendelse</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core</artifactId>
Expand Down

0 comments on commit 164bec7

Please sign in to comment.