Skip to content

Commit

Permalink
Merge pull request #58 from KUSITMS-30th-TEAM-A/feature/#57/culture-m…
Browse files Browse the repository at this point in the history
…odify

[feat] 야구 문화의 enum 에러처리 변경 및 파라미터 유효성 검증
  • Loading branch information
juuuunny authored Nov 7, 2024
2 parents 71008a6 + 762a580 commit 266fda2
Show file tree
Hide file tree
Showing 8 changed files with 38 additions and 38 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -26,11 +26,8 @@ public GetEntertainmentsResponseDto getSuitableEntertainments(String stadiumName
Stadium stadium = stadiumRepository.findByName(stadiumName)
.orElseThrow(() -> new CustomException(StadiumErrorStatus._NOT_FOUND_STADIUM));

if (!Boundary.isExists(boundary)) {
throw new CustomException(FoodErrorStatus._BAD_REQUEST_BOUNDARY);
}

Boundary existBoundary = Boundary.of(boundary);
Boundary existBoundary = Boundary.findByName(boundary)
.orElseThrow(() -> new CustomException(FoodErrorStatus._BAD_REQUEST_BOUNDARY));

List<GetEntertainmentsResponseDto.EntertainmentDto> entertainments = entertainmentRepository.findAllByStadiumAndBoundary(stadium, existBoundary)
.stream()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import kusitms.backend.culture.domain.enums.Course;
import kusitms.backend.culture.domain.repository.FoodRepository;
import kusitms.backend.culture.dto.response.GetFoodsResponseDto;
import kusitms.backend.culture.status.FoodErrorStatus;
import kusitms.backend.global.exception.CustomException;
import kusitms.backend.stadium.domain.entity.Stadium;
import kusitms.backend.stadium.domain.repository.StadiumRepository;
Expand All @@ -25,10 +26,14 @@ public class FoodService {
public GetFoodsResponseDto getSuitableFoods(String stadiumName, String boundary, String course) {
Stadium stadium = stadiumRepository.findByName(stadiumName)
.orElseThrow(() -> new CustomException(StadiumErrorStatus._NOT_FOUND_STADIUM));
Boundary existBoundary = Boundary.of(boundary);

Boundary existBoundary = Boundary.findByName(boundary)
.orElseThrow(() -> new CustomException(FoodErrorStatus._BAD_REQUEST_BOUNDARY));

Course existCourse = null;
if ("내부".equals(boundary)) {
existCourse = Course.of(course);
existCourse = Course.findByName(course)
.orElseThrow(() -> new CustomException(FoodErrorStatus._BAD_REQUEST_COURSE));
}

List<GetFoodsResponseDto.FoodDto> foods = foodRepository.findFoodsByConditions(stadium, existBoundary, existCourse)
Expand Down
14 changes: 4 additions & 10 deletions src/main/java/kusitms/backend/culture/domain/enums/Boundary.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import lombok.RequiredArgsConstructor;

import java.util.Arrays;
import java.util.Optional;

@Getter
@RequiredArgsConstructor
Expand All @@ -14,17 +15,10 @@ public enum Boundary {

private final String name;

public static boolean isExists(String name) {
public static Optional<Boundary> findByName(String name) {
return Arrays.stream(Boundary.values())
.anyMatch(boundary -> boundary.getName().equals(name));
.filter(boundary -> boundary.getName().equals(name))
.findFirst();
}

public static Boundary of(String name) {
for (Boundary boundary : Boundary.values()) {
if (boundary.getName().equals(name)) {
return boundary;
}
}
return null;
}
}
15 changes: 4 additions & 11 deletions src/main/java/kusitms/backend/culture/domain/enums/Course.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import lombok.RequiredArgsConstructor;

import java.util.Arrays;
import java.util.Optional;

@Getter
@RequiredArgsConstructor
Expand All @@ -15,17 +16,9 @@ public enum Course {

private final String name;

public static boolean isExists(String name) {
public static Optional<Course> findByName(String name) {
return Arrays.stream(Course.values())
.anyMatch(course -> course.getName().equals(name));
}

public static Course of(String name) {
for (Course course : Course.values()) {
if (course.getName().equals(name)) {
return course;
}
}
return null;
.filter(course -> course.getName().equals(name))
.findFirst();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import kusitms.backend.global.dto.ApiResponse;
import lombok.RequiredArgsConstructor;
import org.springframework.http.ResponseEntity;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
Expand All @@ -15,6 +16,7 @@
@RestController
@RequiredArgsConstructor
@RequestMapping("/api/v1")
@Validated
public class EntertainmentController {

private final EntertainmentService entertainmentService;
Expand All @@ -28,8 +30,8 @@ public class EntertainmentController {
*/
@GetMapping("/culture/entertainments")
public ResponseEntity<ApiResponse<GetEntertainmentsResponseDto>> getSuitableEntertainments(
@RequestParam String stadiumName,
@RequestParam String boundary
@RequestParam @NotBlank String stadiumName,
@RequestParam @NotBlank String boundary
) {
EntertainmentSuccessStatus status;
if ("내부".equals(boundary)) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
package kusitms.backend.culture.presentation;

import jakarta.validation.constraints.NotBlank;
import kusitms.backend.culture.application.FoodService;
import kusitms.backend.culture.dto.response.GetFoodsResponseDto;
import kusitms.backend.culture.status.FoodSuccessStatus;
import kusitms.backend.global.dto.ApiResponse;
import lombok.RequiredArgsConstructor;
import org.springframework.http.ResponseEntity;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
Expand All @@ -14,6 +16,7 @@
@RestController
@RequiredArgsConstructor
@RequestMapping("/api/v1")
@Validated
public class FoodController {

private final FoodService foodService;
Expand All @@ -26,8 +29,8 @@ public class FoodController {
*/
@GetMapping("/culture/foods")
public ResponseEntity<ApiResponse<GetFoodsResponseDto>> getSuitableFoods(
@RequestParam String stadiumName,
@RequestParam String boundary,
@RequestParam @NotBlank String stadiumName,
@RequestParam @NotBlank String boundary,
@RequestParam(required = false) String course
) {
FoodSuccessStatus status;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package kusitms.backend.result.presentation;

import jakarta.validation.Valid;
import jakarta.validation.constraints.Min;
import kusitms.backend.global.dto.ApiResponse;
import kusitms.backend.result.application.ResultService;
import kusitms.backend.result.dto.request.SaveTopRankedZoneRequestDto;
Expand All @@ -10,11 +11,13 @@
import kusitms.backend.result.status.ResultSuccessStatus;
import lombok.RequiredArgsConstructor;
import org.springframework.http.ResponseEntity;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;

@RestController
@RequiredArgsConstructor
@RequestMapping("/api/v1")
@Validated
public class ResultController {

private final ResultService resultService;
Expand All @@ -37,7 +40,7 @@ public ResponseEntity<ApiResponse<SaveTopRankedZoneResponseDto>> saveRecommended
*/
@GetMapping("/results/profile")
public ResponseEntity<ApiResponse<GetProfileResponseDto>> getRecommendedProfile(
@RequestParam Long resultId
@RequestParam @Min(1L) Long resultId
) {
return ApiResponse.onSuccess(ResultSuccessStatus._OK_GET_RECOMMEND_PROFILE, resultService.getRecommendedProfile(resultId));
}
Expand All @@ -48,8 +51,8 @@ public ResponseEntity<ApiResponse<GetProfileResponseDto>> getRecommendedProfile(
*/
@GetMapping("/results/zones")
public ResponseEntity<ApiResponse<GetZonesResponseDto>> getRecommendedZones(
@RequestParam Long resultId,
@RequestParam Long count
@RequestParam @Min(1L) Long resultId,
@RequestParam @Min(1L) Long count
) {
return ApiResponse.onSuccess(ResultSuccessStatus._OK_GET_RECOMMEND_ZONES, resultService.getRecommendedZones(resultId, count));
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
package kusitms.backend.stadium.presentation;

import jakarta.validation.constraints.NotBlank;
import kusitms.backend.global.dto.ApiResponse;
import kusitms.backend.stadium.application.StadiumService;
import kusitms.backend.stadium.dto.response.GetZoneGuideResponseDto;
import kusitms.backend.stadium.dto.response.GetZonesNameResponseDto;
import kusitms.backend.stadium.status.StadiumSuccessStatus;
import lombok.RequiredArgsConstructor;
import org.springframework.http.ResponseEntity;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
Expand All @@ -15,6 +17,7 @@
@RestController
@RequiredArgsConstructor
@RequestMapping("/api/v1")
@Validated
public class StadiumController {

private final StadiumService stadiumService;
Expand All @@ -25,7 +28,7 @@ public class StadiumController {
*/
@GetMapping("/stadium/zones")
public ResponseEntity<ApiResponse<GetZonesNameResponseDto>> getZonesName(
@RequestParam String stadiumName
@RequestParam @NotBlank String stadiumName
) {
return ApiResponse.onSuccess(StadiumSuccessStatus._OK_GET_ZONES_NAME, stadiumService.getZonesName(stadiumName));
}
Expand All @@ -37,8 +40,8 @@ public ResponseEntity<ApiResponse<GetZonesNameResponseDto>> getZonesName(
*/
@GetMapping("/stadium/zones/guide")
public ResponseEntity<ApiResponse<GetZoneGuideResponseDto>> getZoneGuide(
@RequestParam String stadiumName,
@RequestParam String zoneName
@RequestParam @NotBlank String stadiumName,
@RequestParam @NotBlank String zoneName
) {
return ApiResponse.onSuccess(StadiumSuccessStatus._OK_GET_ZONE_GUIDE, stadiumService.getZoneGuide(stadiumName, zoneName));
}
Expand Down

0 comments on commit 266fda2

Please sign in to comment.