Skip to content

Commit

Permalink
Fjerner pattern fra jsonformat siden vi har fått inn dato med nanosek… (
Browse files Browse the repository at this point in the history
#455)

* Fjerner pattern fra jsonformat siden vi har fått inn dato med nanosekundpresisjon

* Endrer format for deserialisering til UTC
  • Loading branch information
espenjv authored Aug 14, 2024
1 parent 1d15461 commit 1290365
Show file tree
Hide file tree
Showing 7 changed files with 36 additions and 17 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
@JsonIgnoreProperties(ignoreUnknown = true)
@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.NONE, getterVisibility = JsonAutoDetect.Visibility.NONE, setterVisibility = JsonAutoDetect.Visibility.NONE, isGetterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE)
public class Ettersendelse implements Innsending {

@JsonProperty(value="søknadId", required = true)
@NotNull
@Valid
Expand All @@ -34,7 +34,7 @@ public class Ettersendelse implements Innsending {

@JsonProperty(value="mottattDato")
@Valid
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSX", timezone = "UTC")
@JsonFormat(shape = JsonFormat.Shape.STRING, timezone = "UTC")
private final ZonedDateTime mottattDato;

@JsonProperty(value="søker", required = true)
Expand Down Expand Up @@ -77,7 +77,7 @@ private Ettersendelse(
public ZonedDateTime getMottattDato() {
return mottattDato;
}

@Override
public Søker getSøker() {
return søker;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ public class FrisinnSøknad implements Innsending {
private Versjon versjon;

@JsonProperty(value = "mottattDato")
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSX", timezone = "UTC")
@JsonFormat(shape = JsonFormat.Shape.STRING, timezone = "UTC")
@Valid
@NotNull
private ZonedDateTime mottattDato;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ public class OmsorgspengerUtbetalingSøknad implements Innsending {
@JsonProperty(value = "mottattDato", required = true)
@Valid
@NotNull
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSX", timezone = "UTC")
@JsonFormat(shape = JsonFormat.Shape.STRING, timezone = "UTC")
public final ZonedDateTime mottattDato;

@JsonProperty(value = "søker", required = true)
Expand Down Expand Up @@ -68,12 +68,12 @@ public class OmsorgspengerUtbetalingSøknad implements Innsending {
public ZonedDateTime getMottattDato() {
return mottattDato;
}

@Override
public Søker getSøker() {
return søker;
}

@Override
public Versjon getVersjon() {
return versjon;
Expand All @@ -83,7 +83,7 @@ public Versjon getVersjon() {
public SøknadId getSøknadId() {
return søknadId;
}

@Size(max=0, message="${validatedValue}")
private List<Feil> getValiderAngittFosterbarn() {
var barn = this.fosterbarn;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ public class OmsorgspengerUtbetalingSøknad implements Innsending {
@JsonProperty(value = "mottattDato", required = true)
@Valid
@NotNull
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSX", timezone = "UTC")
@JsonFormat(shape = JsonFormat.Shape.STRING, timezone = "UTC")
public final ZonedDateTime mottattDato;

@JsonProperty(value = "søker", required = true)
Expand All @@ -59,7 +59,7 @@ public class OmsorgspengerUtbetalingSøknad implements Innsending {
@JsonProperty("frilanser")
@Valid
public final Frilanser frilanser;

@JsonCreator
private OmsorgspengerUtbetalingSøknad(
@JsonProperty("søknadId") SøknadId søknadId,
Expand All @@ -77,12 +77,12 @@ public class OmsorgspengerUtbetalingSøknad implements Innsending {
this.selvstendigNæringsdrivende = selvstendigNæringsdrivende;
this.frilanser = frilanser;
}

@AssertTrue(message="Enten frilanser eller selvstendingNæringsdrivende må være satt i søknaden")
private boolean isFrilanserEllerSn() {
return frilanser!=null || (selvstendigNæringsdrivende!=null && !selvstendigNæringsdrivende.isEmpty());
}

@Override
public ZonedDateTime getMottattDato() {
return mottattDato;
Expand All @@ -92,7 +92,7 @@ public ZonedDateTime getMottattDato() {
public Søker getSøker() {
return søker;
}

@Override
public Versjon getVersjon() {
return versjon;
Expand Down Expand Up @@ -122,7 +122,7 @@ private List<Feil> getValiderAngittFosterbarn() {
}
return feil;
}

public static Builder builder() {
return new Builder();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ public class OmsorgspengerSøknad implements Innsending {
@JsonProperty(value = "mottattDato", required = true)
@Valid
@NotNull
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSX", timezone = "UTC")
@JsonFormat(shape = JsonFormat.Shape.STRING, timezone = "UTC")
public final ZonedDateTime mottattDato;

@JsonProperty(value = "søker", required = true)
Expand Down
4 changes: 2 additions & 2 deletions soknad/src/main/java/no/nav/k9/søknad/JsonUtils.java
Original file line number Diff line number Diff line change
Expand Up @@ -62,8 +62,8 @@ private static final ObjectMapper createObjectMapper() {
final ObjectMapper objectMapper = new ObjectMapper()
.registerModule(new Jdk8Module())
.registerModule(new JavaTimeModule())
.setPropertyNamingStrategy(PropertyNamingStrategies.LOWER_CAMEL_CASE)
.setTimeZone(TimeZone.getTimeZone("Europe/Oslo"))
.setPropertyNamingStrategy(PropertyNamingStrategies.LOWER_CAMEL_CASE)
.setTimeZone(TimeZone.getTimeZone("UTC"))
.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS)
.disable(SerializationFeature.WRITE_DURATIONS_AS_TIMESTAMPS)
.disable(SerializationFeature.FAIL_ON_EMPTY_BEANS)
Expand Down
19 changes: 19 additions & 0 deletions soknad/src/test/java/no/nav/k9/søknad/JsonUtilsTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,12 @@

import static org.assertj.core.api.Assertions.assertThat;

import java.time.ZonedDateTime;

import org.assertj.core.api.Assertions;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.ValueSource;

import com.fasterxml.jackson.databind.node.ObjectNode;

Expand Down Expand Up @@ -48,6 +52,21 @@ public void ukjentePropertiesSkalGiException() {
}


@ParameterizedTest
@ValueSource(strings = {
"\"2024-08-14T10:05:56.111111111Z\"",
"\"2024-08-14T10:05:56.111111Z\"",
"\"2024-08-14T10:05:56.111Z\"",
"\"2024-08-14T10:05:56Z\""})
public void skal_kunne_deserialisere_zoneddatetime(String dato) {
deserialiserZonedDatetime(dato);
}

private static ZonedDateTime deserialiserZonedDatetime(String s) {
return JsonUtils.fromString(s, ZonedDateTime.class);
}


private static class Testdata {

private String felt;
Expand Down

0 comments on commit 1290365

Please sign in to comment.