From 737be63a4ace62feb23fc0140c93326708bbb351 Mon Sep 17 00:00:00 2001 From: sungHeeLee <70899677+hee9841@users.noreply.github.com> Date: Mon, 30 Dec 2024 09:43:44 +0900 Subject: [PATCH] =?UTF-8?q?Fix:=20=EB=9F=AC=EB=8B=9D=20=EA=B2=BD=EB=A1=9C?= =?UTF-8?q?=EA=B0=80=20=EB=B9=88=20=EB=A6=AC=EC=8A=A4=ED=8A=B8=EC=9D=BC=20?= =?UTF-8?q?=EA=B2=BD=EC=9A=B0=20=EC=A2=8C=ED=91=9C=EB=A5=BC=200,0,0?= =?UTF-8?q?=EC=9D=B8=20=EC=A7=80=EC=A0=90=EC=9D=84=20=EC=A0=80=EC=9E=A5?= =?UTF-8?q?=ED=95=98=EA=B2=8C=20=EC=88=98=EC=A0=95=20(#328)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Fix: 러닝 경로가 빈 리스트일 경우 Exception -> 좌표를 0,0,0인 지점을 저장하게 수정 * Fix: 러닝 경로 startPoint, endPoint null 체크 --- .../v2/running/RunningRecordControllerV2.java | 1 - .../presentation/v2/running/dto/RouteDtoV2.java | 3 +++ .../dto/request/RunningRecordRequestV2.java | 15 ++++++++++----- 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/dnd/runus/presentation/v2/running/RunningRecordControllerV2.java b/src/main/java/com/dnd/runus/presentation/v2/running/RunningRecordControllerV2.java index db47200e..f8c86a23 100644 --- a/src/main/java/com/dnd/runus/presentation/v2/running/RunningRecordControllerV2.java +++ b/src/main/java/com/dnd/runus/presentation/v2/running/RunningRecordControllerV2.java @@ -65,7 +65,6 @@ public RunningRecordMonthlySummaryResponseV2 getMonthlyRunningSummary(@MemberId ErrorType.CHALLENGE_VALUES_REQUIRED_IN_CHALLENGE_MODE, ErrorType.GOAL_VALUES_REQUIRED_IN_GOAL_MODE, ErrorType.GOAL_TIME_AND_DISTANCE_BOTH_EXIST, - ErrorType.ROUTE_MUST_HAVE_AT_LEAST_TWO_COORDINATES, ErrorType.CHALLENGE_NOT_ACTIVE }) @PostMapping diff --git a/src/main/java/com/dnd/runus/presentation/v2/running/dto/RouteDtoV2.java b/src/main/java/com/dnd/runus/presentation/v2/running/dto/RouteDtoV2.java index 1ac8bf8f..e930eb19 100644 --- a/src/main/java/com/dnd/runus/presentation/v2/running/dto/RouteDtoV2.java +++ b/src/main/java/com/dnd/runus/presentation/v2/running/dto/RouteDtoV2.java @@ -2,6 +2,7 @@ import com.dnd.runus.domain.common.CoordinatePoint; +import jakarta.validation.constraints.NotNull; /** * 클라이언트와의 러닝 경로 요청/응답 형식 @@ -9,7 +10,9 @@ * @param end 종료 위치 */ public record RouteDtoV2( + @NotNull Point start, + @NotNull Point end ) { public record Point(double longitude, double latitude) { diff --git a/src/main/java/com/dnd/runus/presentation/v2/running/dto/request/RunningRecordRequestV2.java b/src/main/java/com/dnd/runus/presentation/v2/running/dto/request/RunningRecordRequestV2.java index c6100820..10a3fb7b 100644 --- a/src/main/java/com/dnd/runus/presentation/v2/running/dto/request/RunningRecordRequestV2.java +++ b/src/main/java/com/dnd/runus/presentation/v2/running/dto/request/RunningRecordRequestV2.java @@ -5,6 +5,7 @@ import com.dnd.runus.global.exception.BusinessException; import com.dnd.runus.global.exception.type.ErrorType; import com.dnd.runus.presentation.v2.running.dto.RouteDtoV2; +import com.dnd.runus.presentation.v2.running.dto.RouteDtoV2.Point; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; @@ -58,11 +59,6 @@ public record RunningRecordRequestV2( throw new BusinessException(ErrorType.GOAL_TIME_AND_DISTANCE_BOTH_EXIST); } } - - //러닝 경로 유요성 확인 - if(runningData.route() == null || runningData.route().size() < 2) { - throw new BusinessException(ErrorType.ROUTE_MUST_HAVE_AT_LEAST_TWO_COORDINATES); - } } public record ChallengeAchievedDto( @@ -96,5 +92,14 @@ public record RunningRecordMetrics( @Schema(description = "러닝 경로, 최소, 경로는 최소 2개의 좌표를 가져야합니다.") List<RouteDtoV2> route ) { + public RunningRecordMetrics{ + //러닝 경로 유요성 확인, 기본으로 null Point 좌표가 들어가게 + if (route == null || route.isEmpty()) { + Point nullIsLandPoint = new Point(0, 0); + route = List.of( + new RouteDtoV2(nullIsLandPoint, nullIsLandPoint) + ); + } + } } }