Skip to content

Commit

Permalink
#88 [style] : Javadoc 기반으로 주석을 추가한다
Browse files Browse the repository at this point in the history
  • Loading branch information
bbbang105 committed Nov 23, 2024
1 parent dc25003 commit 37d9f99
Showing 1 changed file with 60 additions and 16 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,13 @@
@RequiredArgsConstructor
public class StadiumService {

/**
* 주어진 경기장 이름에 대한 정보를 조회.
*
* @param stadiumName 경기장 이름
* @return 경기장 정보와 구역 정보 리스트를 포함하는 DTO
* @throws CustomException 유효하지 않은 경기장 이름이 주어진 경우
*/
@Transactional(readOnly = true)
public GetStadiumInfosResponseDto getStadiumInfos(String stadiumName) {
StadiumInfo stadiumInfo = getStadiumInfoByName(stadiumName);
Expand All @@ -29,22 +36,14 @@ public GetStadiumInfosResponseDto getStadiumInfos(String stadiumName) {
return GetStadiumInfosResponseDto.of(stadiumInfo.getImgUrl(), stadiumInfo.getFirstBaseSide(), stadiumInfo.getThirdBaseSide(), zoneInfos);
}

private StadiumInfo getStadiumInfoByName(String stadiumName) {
return switch (stadiumName) {
case "잠실종합운동장 (잠실)" -> StadiumInfo.LG_HOME;
case "수원KT위즈파크" -> StadiumInfo.KT_HOME;
default -> throw new CustomException(StadiumErrorStatus._NOT_FOUND_STADIUM);
};
}

private StadiumStatusType[] getStatusTypesByName(String stadiumName) {
return switch (stadiumName) {
case "잠실종합운동장 (잠실)" -> JamsilStadiumStatusType.values();
case "수원KT위즈파크" -> KtWizStadiumStatusType.values();
default -> throw new CustomException(StadiumErrorStatus._NOT_FOUND_STADIUM);
};
}

/**
* 주어진 경기장 이름에 해당하는 구역 정보를 조회.
*
* @param stadiumName 경기장 이름
* @param zoneName 구역 이름
* @return 구역 정보 DTO
* @throws CustomException 유효하지 않은 경기장 이름이나 구역 이름이 주어진 경우
*/
@Transactional(readOnly = true)
public GetZoneGuideResponseDto getZoneGuide(String stadiumName, String zoneName) {
StadiumStatusType zoneType = switch (stadiumName) {
Expand All @@ -55,17 +54,62 @@ public GetZoneGuideResponseDto getZoneGuide(String stadiumName, String zoneName)
return GetZoneGuideResponseDto.from(zoneType);
}

/**
* 주어진 상태 타입 배열에서 특정 구역의 이름과 색상을 조회.
* CHEERING_DUMMY 구역은 제외됩니다.
*
* @param statusTypes 상태 타입 배열
* @return 구역 이름과 색상 정보를 담은 리스트
*/
private List<GetStadiumInfosResponseDto.ZoneInfo> getZonesNameAndColorFromStadium(StadiumStatusType[] statusTypes) {
return Arrays.stream(statusTypes)
.filter(status -> status != CHEERING_DUMMY)
.map(status -> GetStadiumInfosResponseDto.ZoneInfo.of(status.getZoneName(), status.getZoneColor()))
.toList();
}

/**
* 주어진 상태 타입 배열에서 특정 구역 이름과 일치하는 구역 정보를 조회.
*
* @param statusTypes 상태 타입 배열
* @param zoneName 구역 이름
* @return 일치하는 구역 정보
* @throws CustomException 일치하는 구역을 찾을 수 없는 경우
*/
private StadiumStatusType findZoneInStadium(StadiumStatusType[] statusTypes, String zoneName) {
return Arrays.stream(statusTypes)
.filter(status -> status.getZoneName().equals(zoneName))
.findFirst()
.orElseThrow(() -> new CustomException(StadiumErrorStatus._NOT_FOUND_ZONE));
}

/**
* 주어진 경기장 이름에 대한 기본 정보를 조회.
*
* @param stadiumName 경기장 이름
* @return 경기장 기본 정보
* @throws CustomException 유효하지 않은 경기장 이름이 주어진 경우
*/
private StadiumInfo getStadiumInfoByName(String stadiumName) {
return switch (stadiumName) {
case "잠실종합운동장 (잠실)" -> StadiumInfo.LG_HOME;
case "수원KT위즈파크" -> StadiumInfo.KT_HOME;
default -> throw new CustomException(StadiumErrorStatus._NOT_FOUND_STADIUM);
};
}

/**
* 주어진 경기장 이름에 대한 상태 타입 배열을 조회.
*
* @param stadiumName 경기장 이름
* @return 경기장 상태 타입 배열
* @throws CustomException 유효하지 않은 경기장 이름이 주어진 경우
*/
private StadiumStatusType[] getStatusTypesByName(String stadiumName) {
return switch (stadiumName) {
case "잠실종합운동장 (잠실)" -> JamsilStadiumStatusType.values();
case "수원KT위즈파크" -> KtWizStadiumStatusType.values();
default -> throw new CustomException(StadiumErrorStatus._NOT_FOUND_STADIUM);
};
}
}

0 comments on commit 37d9f99

Please sign in to comment.