From 4bf244429453b9a5032b4a8566b00fa37f23cf7d Mon Sep 17 00:00:00 2001 From: Diger Date: Thu, 21 Dec 2023 01:55:44 +0900 Subject: [PATCH] Modify Datetime Response Form --- .../raisedragon/config/JacksonConfig.kt | 27 +++++++++++++++++++ .../raisedragon/controller/goal/GoalDto.kt | 5 ---- 2 files changed, 27 insertions(+), 5 deletions(-) create mode 100644 raisedragon-api/src/main/kotlin/com/whatever/raisedragon/config/JacksonConfig.kt diff --git a/raisedragon-api/src/main/kotlin/com/whatever/raisedragon/config/JacksonConfig.kt b/raisedragon-api/src/main/kotlin/com/whatever/raisedragon/config/JacksonConfig.kt new file mode 100644 index 0000000..8b291cb --- /dev/null +++ b/raisedragon-api/src/main/kotlin/com/whatever/raisedragon/config/JacksonConfig.kt @@ -0,0 +1,27 @@ +package com.whatever.raisedragon.config + +import com.fasterxml.jackson.databind.DeserializationFeature +import com.fasterxml.jackson.databind.SerializationFeature +import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer +import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer +import com.fasterxml.jackson.datatype.jsr310.ser.LocalTimeSerializer +import org.springframework.context.annotation.Bean +import org.springframework.context.annotation.Configuration +import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder +import java.time.LocalDate +import java.time.LocalDateTime +import java.time.LocalTime +import java.time.format.DateTimeFormatter + +@Configuration +class JacksonConfig { + @Bean + fun jackson2ObjectMapperBuilder(): Jackson2ObjectMapperBuilder { + return Jackson2ObjectMapperBuilder() + .featuresToDisable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS) + .featuresToDisable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES) + .serializerByType(LocalDateTime::class.java, LocalDateTimeSerializer(DateTimeFormatter.ISO_LOCAL_DATE_TIME)) + .serializerByType(LocalDate::class.java, LocalDateSerializer(DateTimeFormatter.ISO_LOCAL_DATE)) + .serializerByType(LocalTime::class.java, LocalTimeSerializer(DateTimeFormatter.ISO_LOCAL_TIME)) + } +} \ No newline at end of file diff --git a/raisedragon-api/src/main/kotlin/com/whatever/raisedragon/controller/goal/GoalDto.kt b/raisedragon-api/src/main/kotlin/com/whatever/raisedragon/controller/goal/GoalDto.kt index 4c2ff9d..b695dd9 100644 --- a/raisedragon-api/src/main/kotlin/com/whatever/raisedragon/controller/goal/GoalDto.kt +++ b/raisedragon-api/src/main/kotlin/com/whatever/raisedragon/controller/goal/GoalDto.kt @@ -1,6 +1,5 @@ package com.whatever.raisedragon.controller.goal -import com.fasterxml.jackson.annotation.JsonFormat import com.whatever.raisedragon.domain.betting.PredictionType import com.whatever.raisedragon.domain.betting.Result import com.whatever.raisedragon.domain.goal.BettingType @@ -62,11 +61,9 @@ data class GoalResponse( @Schema(description = "다짐 인증 횟수") val threshold: Threshold, - @JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss") @Schema(description = "다짐 시작 시간") val startDate: LocalDateTime, - @JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss") @Schema(description = "다짐 마감 시간") val endDate: LocalDateTime ) { @@ -90,7 +87,6 @@ data class GoalBettingHost( @Schema(description = "호스트 유저 닉네임") val nickname: String, - @JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss") @Schema(description = "다짐 생성 시각") val goalCreatedAt: LocalDateTime, ) @@ -111,7 +107,6 @@ data class GoalBettingParticipant( @Schema(description = "당첨 여부") val result: Result, - @JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss") @Schema(description = "배팅 한 시각") val bettingCreatedAt: LocalDateTime, )