Skip to content

Commit ac9f63a

Browse files
committed
[feat] 소속 삭제 예외처리 추가
1 parent a34e515 commit ac9f63a

File tree

4 files changed

+10
-1
lines changed

4 files changed

+10
-1
lines changed

src/main/java/com/better/CommuteMate/domain/manager/repository/ManagerRepository.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,5 @@
1010
@Repository
1111
public interface ManagerRepository extends JpaRepository<Manager, Long> {
1212
Optional<Manager> findByNameAndTeamAndPhonenum(String name, Team team, String phonenum);
13+
boolean existsByTeamId(Long teamId);
1314
}

src/main/java/com/better/CommuteMate/global/exceptions/error/TeamErrorCode.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@
99
public enum TeamErrorCode implements CustomErrorCode {
1010

1111
TEAM_NOT_FOUND("존재하지 않는 TeamId입니다.", "[Error] : Team을 찾을 수 없습니다.", HttpStatus.NOT_FOUND),
12-
TEAM_ALREADY_EXISTS("이미 존재하는 team 이름입니다.", "[Error] : Team 이름 중복 발생", HttpStatus.CONFLICT)
12+
TEAM_ALREADY_EXISTS("이미 존재하는 team 이름입니다.", "[Error] : Team 이름 중복 발생", HttpStatus.CONFLICT),
13+
TEAM_DELETE_NOT_ALLOWED("해당 team에 속한 담당자가 존재하여 삭제할 수 없습니다.", "[Error] : Team 삭제 실패 - 담당자가 존재합니다.", HttpStatus.CONFLICT)
1314
;
1415

1516
private final String message;

src/main/java/com/better/CommuteMate/team/application/TeamService.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.better.CommuteMate.team.application;
22

3+
import com.better.CommuteMate.domain.manager.repository.ManagerRepository;
34
import com.better.CommuteMate.domain.team.entity.Team;
45
import com.better.CommuteMate.domain.team.repository.TeamRepository;
56
import com.better.CommuteMate.global.exceptions.TeamException;
@@ -20,6 +21,7 @@
2021
public class TeamService {
2122

2223
private final TeamRepository teamRepository;
24+
private final ManagerRepository managerRepository;
2325

2426
public PostTeamResponse registerTeam(PostTeamRequest request) {
2527

@@ -48,6 +50,10 @@ public void deleteTeam(Long teamId) {
4850
Team team = teamRepository.findById(teamId)
4951
.orElseThrow(() -> new TeamException(TeamErrorCode.TEAM_NOT_FOUND));
5052

53+
if (managerRepository.existsByTeamId(teamId)) {
54+
throw new TeamException(TeamErrorCode.TEAM_DELETE_NOT_ALLOWED);
55+
}
56+
5157
teamRepository.delete(team);
5258
}
5359
}

src/main/java/com/better/CommuteMate/team/controller/TeamController.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ public ResponseEntity<Response> getTeamList() {
7070
@ApiResponses(value = {
7171
@ApiResponse(responseCode = "200", description = "소속 삭제 성공"),
7272
@ApiResponse(responseCode = "404", description = "존재하지 않는 teamId"),
73+
@ApiResponse(responseCode = "409", description = "해당 소속에 담당자가 존재하여 삭제 불가"),
7374
@ApiResponse(responseCode = "500", description = "서버 오류")
7475
})
7576
@DeleteMapping("/{teamId}")

0 commit comments

Comments
 (0)