diff --git a/booklore-api/src/main/java/com/adityachandel/booklore/model/dto/response/TasksHistoryResponse.java b/booklore-api/src/main/java/com/adityachandel/booklore/model/dto/response/TasksHistoryResponse.java index 08a4f1d0a..44647aa2d 100644 --- a/booklore-api/src/main/java/com/adityachandel/booklore/model/dto/response/TasksHistoryResponse.java +++ b/booklore-api/src/main/java/com/adityachandel/booklore/model/dto/response/TasksHistoryResponse.java @@ -7,7 +7,7 @@ import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; -import java.time.LocalDateTime; +import java.time.Instant; import java.util.List; @Data @@ -27,8 +27,8 @@ public class TasksHistoryResponse { private TaskStatus status; private Integer progressPercentage; private String message; - private LocalDateTime createdAt; - private LocalDateTime updatedAt; - private LocalDateTime completedAt; + private Instant createdAt; + private Instant updatedAt; + private Instant completedAt; } } diff --git a/booklore-api/src/main/java/com/adityachandel/booklore/service/task/TaskHistoryService.java b/booklore-api/src/main/java/com/adityachandel/booklore/service/task/TaskHistoryService.java index ec0e73e0e..5e6df46e9 100644 --- a/booklore-api/src/main/java/com/adityachandel/booklore/service/task/TaskHistoryService.java +++ b/booklore-api/src/main/java/com/adityachandel/booklore/service/task/TaskHistoryService.java @@ -10,7 +10,9 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.time.Instant; import java.time.LocalDateTime; +import java.time.ZoneId; import java.util.*; import java.util.stream.Collectors; @@ -112,12 +114,16 @@ public class TaskHistoryService { .status(task.getStatus()) .progressPercentage(task.getProgressPercentage()) .message(task.getMessage()) - .createdAt(task.getCreatedAt()) - .updatedAt(task.getUpdatedAt()) - .completedAt(task.getCompletedAt()) + .createdAt(toUtcInstant(task.getCreatedAt())) + .updatedAt(toUtcInstant(task.getUpdatedAt())) + .completedAt(toUtcInstant(task.getCompletedAt())) .build(); } + private Instant toUtcInstant(LocalDateTime localDateTime) { + return localDateTime != null ? localDateTime.atZone(ZoneId.systemDefault()).toInstant() : null; + } + private TasksHistoryResponse.TaskHistory createMetadataOnlyTaskInfo(TaskType taskType) { return TasksHistoryResponse.TaskHistory.builder() .id(null)