Skip to content

Commit 526e46a

Browse files
authored
Merge pull request #216 from GOKULRAJ136/MOSIP-42744
DTO Changes [MOSIP-42744]
2 parents 421fb20 + 753fb44 commit 526e46a

3 files changed

Lines changed: 41 additions & 1 deletion

File tree

kernel/kernel-auditmanager-api/src/main/java/io/mosip/kernel/auditmanager/request/AuditRequestDto.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
import java.time.LocalDateTime;
44

5+
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
6+
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
57
import jakarta.validation.constraints.NotNull;
68
import jakarta.validation.constraints.Size;
79

@@ -36,7 +38,8 @@ public class AuditRequestDto {
3638
private String eventType;
3739

3840
@NotNull
39-
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'")
41+
@JsonDeserialize(using = StringToLocalDateTimeDeserializer.class)
42+
@JsonSerialize(using = LocalDateTimeToStringSerializer.class)
4043
private LocalDateTime actionTimeStamp;
4144

4245
@NotNull
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package io.mosip.kernel.auditmanager.request;
2+
3+
import com.fasterxml.jackson.core.JsonGenerator;
4+
import com.fasterxml.jackson.databind.JsonSerializer;
5+
import com.fasterxml.jackson.databind.SerializerProvider;
6+
7+
import java.io.IOException;
8+
import java.time.LocalDateTime;
9+
import java.time.ZoneId;
10+
11+
public class LocalDateTimeToStringSerializer extends JsonSerializer<LocalDateTime> {
12+
@Override
13+
public void serialize(LocalDateTime value, JsonGenerator gen, SerializerProvider serializers) throws IOException {
14+
String isoString = value.atZone(ZoneId.of("UTC")).toInstant().toString();
15+
gen.writeString(isoString); // produces 2025-08-19T07:40:49.966588424Z
16+
}
17+
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package io.mosip.kernel.auditmanager.request;
2+
3+
import com.fasterxml.jackson.core.JsonParser;
4+
import com.fasterxml.jackson.databind.DeserializationContext;
5+
import com.fasterxml.jackson.databind.JsonDeserializer;
6+
7+
import java.io.IOException;
8+
import java.time.Instant;
9+
import java.time.LocalDateTime;
10+
import java.time.ZoneId;
11+
12+
public class StringToLocalDateTimeDeserializer extends JsonDeserializer<LocalDateTime> {
13+
@Override
14+
public LocalDateTime deserialize(JsonParser p, DeserializationContext ctxt) throws IOException {
15+
String value = p.getText();
16+
// Parse ISO string with Z into Instant, then to LocalDateTime in UTC (or any zone)
17+
Instant instant = Instant.parse(value);
18+
return LocalDateTime.ofInstant(instant, ZoneId.of("UTC"));
19+
}
20+
}

0 commit comments

Comments
 (0)