Skip to content

Commit b88781c

Browse files
authored
Legger til et felt for å oppgi kildesystemet til søknadsdataene. (#341)
1 parent ca984cc commit b88781c

File tree

3 files changed

+77
-0
lines changed

3 files changed

+77
-0
lines changed

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

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import java.util.Collections;
77
import java.util.List;
88
import java.util.Objects;
9+
import java.util.Optional;
910

1011
import javax.validation.Valid;
1112
import javax.validation.constraints.NotNull;
@@ -17,8 +18,10 @@
1718
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
1819
import com.fasterxml.jackson.annotation.JsonManagedReference;
1920
import com.fasterxml.jackson.annotation.JsonProperty;
21+
import com.fasterxml.jackson.annotation.JsonValue;
2022
import com.fasterxml.jackson.databind.node.ObjectNode;
2123

24+
import no.nav.k9.søknad.felles.Kildesystem;
2225
import no.nav.k9.søknad.felles.Versjon;
2326
import no.nav.k9.søknad.felles.personopplysninger.Søker;
2427
import no.nav.k9.søknad.felles.type.BegrunnelseForInnsending;
@@ -71,6 +74,10 @@ public class Søknad implements Innsending {
7174
@NotNull
7275
@JsonProperty(value = "ytelse", required = true)
7376
private Ytelse ytelse;
77+
78+
@Valid
79+
@JsonProperty(value = "kildesystem", required = false)
80+
private Kildesystem kildesystem;
7481

7582
public Søknad() {
7683
//
@@ -139,6 +146,19 @@ public List<Journalpost> getJournalposter() {
139146
public <Y extends Ytelse> Y getYtelse() {
140147
return (Y) ytelse;
141148
}
149+
150+
/**
151+
* Dette feltet kan brukes til å oppgi kildesystem. For historiske data
152+
* er feltet kun garantert å være satt for alle søknader som kommer fra
153+
* endringsdialogen. Ved behov for å se på historiske data av andre typer,
154+
* se på journalpostens kanalfelt og/eller metadatafeltet på journalposten
155+
* kalt "k9.kilde".
156+
*
157+
* @return Systemet som søknadsdataene kommer fra.
158+
*/
159+
public Optional<Kildesystem> getKildesystem() {
160+
return Optional.ofNullable(kildesystem);
161+
}
142162

143163
public void setSøknadId(SøknadId søknadId) {
144164
this.søknadId = Objects.requireNonNull(søknadId, "søknadId");
@@ -159,6 +179,10 @@ public void setMottattDato(ZonedDateTime mottattDato) {
159179
public void setYtelse(Ytelse ytelse) {
160180
this.ytelse = Objects.requireNonNull(ytelse, "ytelse");
161181
}
182+
183+
public void setKildesystem(Kildesystem kildesystem) {
184+
this.kildesystem = kildesystem;
185+
}
162186

163187
public Søknad medMottattDato(ZonedDateTime mottattDato) {
164188
this.mottattDato = Objects.requireNonNull(mottattDato, "mottattDato");
@@ -214,6 +238,14 @@ public void setYtelse(Ytelse ytelse) {
214238
this.journalposter.addAll(Objects.requireNonNull(journalposter, "journalposter"));
215239
return this;
216240
}
241+
242+
/**
243+
* @see #getKildesystem()
244+
*/
245+
public Søknad medKildesystem(Kildesystem kildesystem) {
246+
this.kildesystem = kildesystem;
247+
return this;
248+
}
217249

218250
public static final class SerDes {
219251
private SerDes() {
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
package no.nav.k9.søknad.felles;
2+
3+
import java.util.HashMap;
4+
import java.util.Map;
5+
6+
import com.fasterxml.jackson.annotation.JsonCreator;
7+
import com.fasterxml.jackson.annotation.JsonValue;
8+
9+
public class Kildesystem {
10+
11+
private static final Map<String, Kildesystem> cache = new HashMap<>();
12+
13+
public static final Kildesystem SØKNADSDIALOG = placeInCache("søknadsdialog");
14+
public static final Kildesystem ENDRINGSDIALOG = placeInCache("endringsdialog");
15+
public static final Kildesystem PUNSJ = placeInCache("punsj");
16+
public static final Kildesystem UTLEDET = placeInCache("utledet");
17+
18+
19+
@JsonValue
20+
private final String kode;
21+
22+
private Kildesystem(String kode) {
23+
this.kode = kode;
24+
}
25+
26+
public String getKode() {
27+
return kode;
28+
}
29+
30+
@JsonCreator
31+
public static Kildesystem of(String kode) {
32+
final Kildesystem kildesystem = cache.get(kode);
33+
if (kildesystem != null) {
34+
return kildesystem;
35+
}
36+
return new Kildesystem(kode);
37+
}
38+
39+
private static Kildesystem placeInCache(String kode) {
40+
final Kildesystem kildesystem = new Kildesystem(kode);
41+
cache.put(kode, kildesystem);
42+
return kildesystem;
43+
}
44+
}

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
"inneholderMedisinskeOpplysninger" : false,
1111
"journalpostId" : "sajhdasd83724234"
1212
} ],
13+
"kildesystem": "søknadsdialog",
1314
"ytelse": {
1415
"type" : "PLEIEPENGER_SYKT_BARN",
1516
"søknadsperiode" : [ "2018-12-30/2019-10-20" ],

0 commit comments

Comments
 (0)