Skip to content

Commit 822d4a9

Browse files
endret navn på objektet for info fra punsj til journalposter, lagt ti… (#146)
* endret navn på objektet for info fra punsj til journalposter, lagt til journalpostId * fiks etter kommentarer fra Stian * Lagt tilbake InfoFraPunsj, flyttet Journalposter til søknad
1 parent 74bb8d8 commit 822d4a9

File tree

7 files changed

+100
-23
lines changed

7 files changed

+100
-23
lines changed

soknad/src/main/java/no/nav/k9/søknad/Søknad.java

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,15 @@
22

33
import java.io.IOException;
44
import java.time.ZonedDateTime;
5+
import java.util.ArrayList;
56
import java.util.Collections;
67
import java.util.List;
8+
import java.util.Objects;
79

810
import javax.validation.Valid;
11+
import javax.validation.constraints.Max;
912
import javax.validation.constraints.NotNull;
13+
import javax.validation.constraints.Size;
1014

1115
import com.fasterxml.jackson.annotation.JsonAutoDetect;
1216
import com.fasterxml.jackson.annotation.JsonCreator;
@@ -18,10 +22,12 @@
1822

1923
import no.nav.k9.søknad.felles.Versjon;
2024
import no.nav.k9.søknad.felles.personopplysninger.Søker;
25+
import no.nav.k9.søknad.felles.type.Journalpost;
2126
import no.nav.k9.søknad.felles.type.Person;
2227
import no.nav.k9.søknad.felles.type.Språk;
2328
import no.nav.k9.søknad.felles.type.SøknadId;
2429
import no.nav.k9.søknad.ytelse.Ytelse;
30+
import no.nav.k9.søknad.ytelse.psb.v1.PleiepengerSyktBarn;
2531

2632
@JsonIgnoreProperties(ignoreUnknown = true)
2733
@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.NONE, getterVisibility = JsonAutoDetect.Visibility.NONE, setterVisibility = JsonAutoDetect.Visibility.NONE, isGetterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE)
@@ -52,6 +58,11 @@ public class Søknad implements Innsending {
5258
@JsonProperty(value = "språk", required = false)
5359
private Språk språk = Språk.NORSK_BOKMÅL;
5460

61+
@Valid
62+
@Size(max=1000)
63+
@JsonProperty(value = "journalposter")
64+
private List<Journalpost> journalposter = new ArrayList<>();
65+
5566
@JsonManagedReference
5667
@Valid
5768
@NotNull
@@ -169,6 +180,20 @@ public void setMottattDato(ZonedDateTime mottattDato) {
169180
this.søker = søker;
170181
}
171182

183+
public List<Journalpost> getJournalposter() {
184+
return journalposter;
185+
}
186+
187+
public Søknad medJournalpost(Journalpost journalpost) {
188+
this.journalposter.add(Objects.requireNonNull(journalpost, "journalpost"));
189+
return this;
190+
}
191+
192+
public Søknad medJournalposter(List<Journalpost> journalposter) {
193+
this.journalposter.addAll(Objects.requireNonNull(journalposter, "journalposter"));
194+
return this;
195+
}
196+
172197
@SuppressWarnings("unchecked")
173198
public <Y extends Ytelse> Y getYtelse() {
174199
return (Y) ytelse;
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
package no.nav.k9.søknad.felles.type;
2+
3+
import java.util.Objects;
4+
5+
import javax.validation.Valid;
6+
import javax.validation.constraints.NotNull;
7+
import javax.validation.constraints.Pattern;
8+
import javax.validation.constraints.Size;
9+
10+
import com.fasterxml.jackson.annotation.JsonAutoDetect;
11+
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
12+
import com.fasterxml.jackson.annotation.JsonProperty;
13+
14+
@JsonIgnoreProperties(ignoreUnknown = true)
15+
@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.NONE, getterVisibility = JsonAutoDetect.Visibility.NONE, setterVisibility = JsonAutoDetect.Visibility.NONE, isGetterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE)
16+
public class Journalpost {
17+
18+
private static final String GYLDIG = "^[\\p{Alnum}]+$";
19+
20+
@JsonProperty(value = "inneholderInfomasjonSomIkkeKanPunsjes")
21+
@Valid
22+
private Boolean inneholderInfomasjonSomIkkeKanPunsjes;
23+
24+
@JsonProperty(value = "journalpostId", required = true)
25+
@NotNull
26+
@Size(max = 50, min = 3)
27+
@Pattern(regexp = GYLDIG, message = "Saksnummer [${validatedValue}] matcher ikke tillatt pattern [{regexp}]")
28+
private String journalpostId;
29+
30+
public Journalpost() {
31+
}
32+
33+
public Boolean getInneholderInfomasjonSomIkkeKanPunsjes() {
34+
return inneholderInfomasjonSomIkkeKanPunsjes;
35+
}
36+
37+
public Journalpost medInfomasjonSomIkkeKanPunsjes(Boolean søknadenInneholderInfomasjonSomIkkeKanPunsjes) {
38+
this.inneholderInfomasjonSomIkkeKanPunsjes = søknadenInneholderInfomasjonSomIkkeKanPunsjes;
39+
return this;
40+
}
41+
42+
public String getJournalpostId() {
43+
return journalpostId;
44+
}
45+
46+
public Journalpost medJournalpostId(String journalpostId) {
47+
this.journalpostId = Objects.requireNonNull(journalpostId);
48+
return this;
49+
}
50+
}

soknad/src/main/java/no/nav/k9/søknad/ytelse/psb/v1/InfoFraPunsj.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,4 +27,4 @@ public InfoFraPunsj() {
2727
this.søknadenInneholderInfomasjonSomIkkeKanPunsjes = søknadenInneholderInfomasjonSomIkkeKanPunsjes;
2828
return this;
2929
}
30-
}
30+
}

soknad/src/main/java/no/nav/k9/søknad/ytelse/psb/v1/PleiepengerSyktBarn.java

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
import java.util.Collections;
66
import java.util.List;
77
import java.util.Objects;
8-
import java.util.TreeMap;
98

109
import javax.validation.Valid;
1110
import javax.validation.constraints.NotNull;
@@ -23,6 +22,7 @@
2322
import no.nav.k9.søknad.felles.personopplysninger.Barn;
2423
import no.nav.k9.søknad.felles.personopplysninger.Bosteder;
2524
import no.nav.k9.søknad.felles.personopplysninger.Utenlandsopphold;
25+
import no.nav.k9.søknad.felles.type.Journalpost;
2626
import no.nav.k9.søknad.felles.type.Periode;
2727
import no.nav.k9.søknad.felles.type.Person;
2828
import no.nav.k9.søknad.ytelse.Ytelse;
@@ -152,16 +152,12 @@ public Person getAnnenPart() {
152152
}
153153

154154
public PleiepengerSyktBarn medSøknadsperiode(List<Periode> søknadsperiodeList) {
155-
if (this.søknadsperiode == null)
156-
this.søknadsperiode = new ArrayList<>();
157-
this.søknadsperiode.addAll(søknadsperiodeList);
155+
this.søknadsperiode.addAll(Objects.requireNonNull(søknadsperiodeList, "søknadsperiodeList"));
158156
return this;
159157
}
160158

161159
public PleiepengerSyktBarn medSøknadsperiode(Periode søknadsperiode) {
162-
if (this.søknadsperiode == null)
163-
this.søknadsperiode = new ArrayList<>();
164-
this.søknadsperiode.add(søknadsperiode);
160+
this.søknadsperiode.add(Objects.requireNonNull(søknadsperiode, "søknadsperiode"));
165161
return this;
166162
}
167163

soknad/src/test/java/no/nav/k9/søknad/ytelse/psb/PleiepengerBarnSøknadValidatorTest.java

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,13 @@ public class PleiepengerBarnSøknadValidatorTest {
6767
verifyIngenFeil(søknad);
6868
}
6969

70+
@Test
71+
public void komplettSøknadSkalIkkeHaFeil() {
72+
var søknadsperiode = new Periode(LocalDate.now(), LocalDate.now().plusMonths(3));
73+
var psb = TestUtils.komplettYtelsePsb(søknadsperiode);
74+
verifyIngenFeil(psb);
75+
}
76+
7077
@Test
7178
public void minimumSøknadMedOmsorgNullPåFelterSkalIkkeHaValideringsfeil() {
7279
var psb = TestUtils.minimumSøknadPleiepengerSyktBarnMedDelperioder();
@@ -89,16 +96,6 @@ public class PleiepengerBarnSøknadValidatorTest {
8996
verifyHarFeil(ytelse);
9097
}
9198

92-
@Disabled //Disabled siden det er usikkert om dette er et krav
93-
@Test
94-
public void måVæreSøknadHvisDetErInfoOmOmsorg() {
95-
var ytelse = TestUtils.minimumEndringssøknad(new Periode(LocalDate.now().minusMonths(1), LocalDate.now().plusMonths(1)))
96-
.medOmsorg(new Omsorg().medRelasjonTilBarnet(Omsorg.BarnRelasjon.MOR).medBeskrivelseAvOmsorgsrollen(TestUtils.testTekst()));
97-
var feil = valider(ytelse);
98-
assertThat(feil.size()).isEqualTo(1);
99-
assertThat(feil.get(0).getFeilkode()).isEqualTo("IllegalArgumentException");
100-
}
101-
10299
@Test
103100
public void endringssøknadUtenFeil() {
104101
var endringsperiode = new Periode(LocalDate.now().minusMonths(1), LocalDate.now().plusMonths(1));
@@ -117,6 +114,7 @@ public class PleiepengerBarnSøknadValidatorTest {
117114
verifyIngenFeil(endringssøknad);
118115

119116
}
117+
120118
@Test
121119
public void søknadOgEndringMedFeil() {
122120
var søknadsperiode = new Periode(LocalDate.now(), LocalDate.now().plusMonths(2));

soknad/src/test/java/no/nav/k9/søknad/ytelse/psb/TestUtils.java

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,27 +8,26 @@
88
import java.util.List;
99
import java.util.Map;
1010

11-
import no.nav.k9.søknad.JsonUtils;
1211
import no.nav.k9.søknad.Søknad;
13-
import no.nav.k9.søknad.ytelse.psb.v1.InfoFraPunsj;
14-
import no.nav.k9.søknad.ytelse.psb.v1.arbeidstid.Arbeidstaker;
1512
import no.nav.k9.søknad.felles.personopplysninger.Barn;
1613
import no.nav.k9.søknad.felles.personopplysninger.Bosteder;
1714
import no.nav.k9.søknad.felles.personopplysninger.Utenlandsopphold;
1815
import no.nav.k9.søknad.felles.type.Landkode;
1916
import no.nav.k9.søknad.felles.type.NorskIdentitetsnummer;
2017
import no.nav.k9.søknad.felles.type.Organisasjonsnummer;
2118
import no.nav.k9.søknad.felles.type.Periode;
22-
import no.nav.k9.søknad.ytelse.Ytelse;
2319
import no.nav.k9.søknad.ytelse.psb.v1.Beredskap;
2420
import no.nav.k9.søknad.ytelse.psb.v1.DataBruktTilUtledning;
21+
import no.nav.k9.søknad.felles.type.Journalpost;
22+
import no.nav.k9.søknad.ytelse.psb.v1.InfoFraPunsj;
2523
import no.nav.k9.søknad.ytelse.psb.v1.LovbestemtFerie;
2624
import no.nav.k9.søknad.ytelse.psb.v1.LovbestemtFerie.LovbestemtFeriePeriodeInfo;
2725
import no.nav.k9.søknad.ytelse.psb.v1.Nattevåk;
2826
import no.nav.k9.søknad.ytelse.psb.v1.Omsorg;
2927
import no.nav.k9.søknad.ytelse.psb.v1.PleiepengerSyktBarn;
3028
import no.nav.k9.søknad.ytelse.psb.v1.Uttak;
3129
import no.nav.k9.søknad.ytelse.psb.v1.UttakPeriodeInfo;
30+
import no.nav.k9.søknad.ytelse.psb.v1.arbeidstid.Arbeidstaker;
3231
import no.nav.k9.søknad.ytelse.psb.v1.arbeidstid.Arbeidstid;
3332
import no.nav.k9.søknad.ytelse.psb.v1.arbeidstid.ArbeidstidInfo;
3433
import no.nav.k9.søknad.ytelse.psb.v1.arbeidstid.ArbeidstidPeriodeInfo;
@@ -144,7 +143,8 @@ static PleiepengerSyktBarn komplettYtelsePsb(Periode søknadsperiode) {
144143
var søknadInfo = new DataBruktTilUtledning( true, true,
145144
false, false, true );
146145

147-
var infoFraPunsj = new InfoFraPunsj().medSøknadenInneholderInfomasjonSomIkkeKanPunsjes(false);
146+
var infoFraPunsj = new InfoFraPunsj()
147+
.medSøknadenInneholderInfomasjonSomIkkeKanPunsjes(false);
148148

149149
return new PleiepengerSyktBarn()
150150
.medSøknadsperiode(søknadsperiode)
@@ -235,4 +235,8 @@ static String testTekst() {
235235
return "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.";
236236
}
237237

238+
static String journalpostId() {
239+
return "sajhdasd83724234";
240+
}
241+
238242
}

soknad/src/test/resources/ytelse/psb/komplett-søknad.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,10 @@
55
"søker": {
66
"norskIdentitetsnummer": "11111111111"
77
},
8+
"journalposter" : [ {
9+
"inneholderInfomasjonSomIkkeKanPunsjes" : false,
10+
"journalpostId" : "sajhdasd83724234"
11+
} ],
812
"ytelse": {
913
"type" : "PLEIEPENGER_SYKT_BARN",
1014
"søknadsperiode" : [ "2018-12-30/2019-10-20" ],

0 commit comments

Comments
 (0)