|
1 | 1 | package no.nav.k9.innsyn;
|
2 | 2 |
|
3 |
| -import jakarta.validation.Valid; |
4 |
| -import jakarta.validation.constraints.NotNull; |
5 |
| -import jakarta.validation.constraints.Pattern; |
6 |
| -import jakarta.validation.constraints.Size; |
7 |
| - |
8 | 3 | import com.fasterxml.jackson.annotation.JsonAutoDetect;
|
| 4 | +import com.fasterxml.jackson.annotation.JsonCreator; |
9 | 5 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
10 | 6 | import com.fasterxml.jackson.annotation.JsonProperty;
|
11 | 7 | import com.fasterxml.jackson.annotation.JsonTypeName;
|
12 | 8 |
|
| 9 | +import jakarta.validation.Valid; |
| 10 | +import jakarta.validation.constraints.NotNull; |
| 11 | +import jakarta.validation.constraints.Pattern; |
| 12 | +import jakarta.validation.constraints.Size; |
| 13 | +import no.nav.k9.ettersendelse.Ettersendelse; |
13 | 14 | import no.nav.k9.søknad.Søknad;
|
14 | 15 |
|
15 | 16 | /**
|
16 | 17 | * Innholdet til en ny søknad som har kommet inn i k9-sak.
|
17 |
| - * |
| 18 | + * <p> |
18 | 19 | * {@code PsbSøknadsinnhold} identifiseres av {@code journalpostId}.
|
19 |
| - * |
| 20 | + * <p> |
20 | 21 | * Merk at man skal bruke {@code søkerAktørId} og {@code pleietrengendeAktørId} fremfor å hente
|
21 | 22 | * identene direkte fra søknaden. Dette er for å støtte bytte av D-/fødselsnummer.
|
22 | 23 | */
|
@@ -46,37 +47,69 @@ public class PsbSøknadsinnhold implements InnsynHendelseData {
|
46 | 47 | @Pattern(regexp = "^\\d+$", message = "pleietrengendeAktørId [${validatedValue}] matcher ikke tillatt pattern [{regexp}]")
|
47 | 48 | private String pleietrengendeAktørId;
|
48 | 49 |
|
49 |
| - @JsonProperty(value = "søknad", required = true) |
| 50 | + @JsonProperty(value = "søknad") |
50 | 51 | @Valid
|
51 | 52 | @NotNull
|
52 | 53 | private Søknad søknad;
|
53 |
| - |
54 |
| - |
| 54 | + |
| 55 | + @JsonProperty(value = "ettersendelse") |
| 56 | + @Valid |
| 57 | + private Ettersendelse ettersendelse; |
| 58 | + |
55 | 59 | protected PsbSøknadsinnhold() {
|
56 |
| - |
| 60 | + |
57 | 61 | }
|
58 |
| - |
59 |
| - public PsbSøknadsinnhold(String journalpostId, String søkerAktørId, String pleietrengendeAktørId, Søknad søknad) { |
| 62 | + |
| 63 | + @JsonCreator |
| 64 | + public PsbSøknadsinnhold( |
| 65 | + @JsonProperty(value = "journalpostId", required = true) |
| 66 | + String journalpostId, |
| 67 | + @JsonProperty(value = "søkerAktørId", required = true) |
| 68 | + String søkerAktørId, |
| 69 | + @JsonProperty(value = "pleietrengendeAktørId", required = true) |
| 70 | + String pleietrengendeAktørId, |
| 71 | + @JsonProperty(value = "søknad") |
| 72 | + Søknad søknad, |
| 73 | + @JsonProperty(value = "ettersendelse") |
| 74 | + Ettersendelse ettersendelse) { |
60 | 75 | this.journalpostId = journalpostId;
|
61 | 76 | this.søkerAktørId = søkerAktørId;
|
62 | 77 | this.pleietrengendeAktørId = pleietrengendeAktørId;
|
| 78 | + |
| 79 | + validerInput(søknad, ettersendelse); |
| 80 | + |
63 | 81 | this.søknad = søknad;
|
| 82 | + this.ettersendelse = ettersendelse; |
64 | 83 | }
|
65 |
| - |
66 |
| - |
| 84 | + |
| 85 | + private static void validerInput(Søknad søknad, Ettersendelse ettersendelse) { |
| 86 | + if (søknad == null && ettersendelse == null) { |
| 87 | + throw new IllegalArgumentException("Både søknad og ettersendelse kan ikke være null"); |
| 88 | + } |
| 89 | + |
| 90 | + if (ettersendelse != null && søknad != null) { |
| 91 | + throw new IllegalArgumentException("Kan ikke sette både søknad og ettersendelse"); |
| 92 | + } |
| 93 | + } |
| 94 | + |
| 95 | + |
67 | 96 | public String getJournalpostId() {
|
68 | 97 | return journalpostId;
|
69 | 98 | }
|
70 |
| - |
| 99 | + |
71 | 100 | public String getSøkerAktørId() {
|
72 | 101 | return søkerAktørId;
|
73 | 102 | }
|
74 |
| - |
| 103 | + |
75 | 104 | public String getPleietrengendeAktørId() {
|
76 | 105 | return pleietrengendeAktørId;
|
77 | 106 | }
|
78 |
| - |
| 107 | + |
79 | 108 | public Søknad getSøknad() {
|
80 | 109 | return søknad;
|
81 | 110 | }
|
| 111 | + |
| 112 | + public Ettersendelse getEttersendelse() { |
| 113 | + return ettersendelse; |
| 114 | + } |
82 | 115 | }
|
0 commit comments