Skip to content

Commit a1ec5db

Browse files
committed
Laget temp serializer nødvendig for å kunne serializere k9-sak kodeverdi objekter til string
1 parent a9586ab commit a1ec5db

File tree

3 files changed

+53
-0
lines changed

3 files changed

+53
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
package no.nav.k9.innsyn;
2+
3+
import java.io.IOException;
4+
5+
import com.fasterxml.jackson.core.JsonGenerator;
6+
import com.fasterxml.jackson.databind.ObjectMapper;
7+
import com.fasterxml.jackson.databind.SerializerProvider;
8+
import com.fasterxml.jackson.databind.module.SimpleModule;
9+
import com.fasterxml.jackson.databind.ser.std.StdSerializer;
10+
11+
import no.nav.k9.kodeverk.api.Kodeverdi;
12+
import no.nav.k9.søknad.JsonUtils;
13+
14+
/**
15+
* nødvendig for å kunne serializere k9-sak kodeverdi objekter til string
16+
* kan fjernes når k9-sak har tatt i bruk @JsonValue på sine kodeobjekter
17+
*/
18+
public class TempObjectMapperKodeverdi {
19+
20+
public static ObjectMapper getObjectMapper() {
21+
var om = JsonUtils.getObjectMapper().copy();
22+
var m = new SimpleModule();
23+
m.addSerializer(Kodeverdi.class, new TempKodeverdiSerializer());
24+
om.registerModule(m);
25+
return om;
26+
}
27+
28+
private static class TempKodeverdiSerializer extends StdSerializer<Kodeverdi> {
29+
30+
public TempKodeverdiSerializer(){
31+
super(Kodeverdi.class);
32+
}
33+
34+
@Override
35+
public void serialize(Kodeverdi value, JsonGenerator gen, SerializerProvider provider) throws IOException {
36+
gen.writeString(value.getKode());
37+
}
38+
}
39+
40+
}
41+

innsyn/src/test/java/no/nav/k9/innsyn/sak/BehandlingTest.java

+4
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import org.junit.jupiter.api.Test;
1515

1616
import no.nav.k9.innsyn.InnsynHendelse;
17+
import no.nav.k9.innsyn.TempObjectMapperKodeverdi;
1718
import no.nav.k9.kodeverk.behandling.FagsakYtelseType;
1819
import no.nav.k9.sak.typer.AktørId;
1920
import no.nav.k9.sak.typer.Saksnummer;
@@ -105,6 +106,9 @@ void deserialiserFraJsonString() {
105106
Aksjonspunkt aksjonspunkt = aksjonspunkter.stream().findFirst().get();
106107
assertThat(aksjonspunkt.venteårsak()).isEqualTo(Aksjonspunkt.Venteårsak.INNTEKTSMELDING);
107108
assertThat(aksjonspunkt.tidsfrist()).isEqualTo(ZonedDateTime.parse("2024-02-15T12:00:00.000Z"));
109+
110+
String json = JsonUtils.toString(hendelse, TempObjectMapperKodeverdi.getObjectMapper());
111+
assertThat(json).doesNotContain("kodeverk");
108112
}
109113

110114
@Test

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

+8
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,14 @@ private JsonUtils() {
2727
}
2828

2929
public static String toString(Object object) {
30+
return toString(object, objectMapper);
31+
}
32+
33+
/**
34+
* Tillater å override objectmapper. Nødvendig i en overgangsfase mens Kodeverdi objekter i k9sak
35+
* overføres til @JsonValue
36+
*/
37+
public static String toString(Object object, ObjectMapper objectMapper) {
3038
try {
3139
return objectMapper.writer(new PlatformIndependentPrettyPrinter()).writeValueAsString(object);
3240
} catch (JsonProcessingException e) {

0 commit comments

Comments
 (0)