Skip to content

Commit bc64689

Browse files
committed
refactor: 내 자치구 삭제시 대표 자치구 수정
1 parent c1f723c commit bc64689

File tree

3 files changed

+18
-6
lines changed

3 files changed

+18
-6
lines changed

src/main/java/com/trashheroesbe/feature/user/api/UserController.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,9 +54,10 @@ public ApiResponse<Void> createUserDistrict(
5454
@Override
5555
@DeleteMapping("/districts/{userDistrictId}")
5656
public ApiResponse<Void> deleteUserDistrict(
57-
@PathVariable Long userDistrictId
57+
@PathVariable Long userDistrictId,
58+
@AuthenticationPrincipal CustomerDetails customerDetails
5859
) {
59-
userService.deleteUserDistrict(userDistrictId);
60+
userService.deleteUserDistrict(userDistrictId, customerDetails.getUser().getId());
6061
return ApiResponse.success(OK);
6162
}
6263

src/main/java/com/trashheroesbe/feature/user/api/UserControllerApi.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,12 @@ ApiResponse<Long> updateUser(
3636
ApiResponse<Void> createUserDistrict(CustomerDetails customerDetails, String districtId);
3737

3838
@Operation(summary = "유저 자치구 삭제하기", description = "유저의 자치구를 삭제합니다.")
39-
ApiResponse<Void> deleteUserDistrict(Long userDistrictId);
39+
ApiResponse<Void> deleteUserDistrict(Long userDistrictId, CustomerDetails customerDetails);
4040

4141
@Operation(summary = "내 자치구 조회하기", description = "나의 등록된 자치구를 조회합니다.")
4242
ApiResponse<List<UserDistrictResponse>> getMyDistricts(CustomerDetails customerDetails);
4343

44-
@Operation(summary = "유저 대표 자치구 수정하기", description = "유저의 자치구를 수정합니다.")
45-
ApiResponse<Void> updateDefaultUserDistrict(Long userDistrictId, CustomerDetails customerDetails);
44+
@Operation(summary = "유저 대표(default) 자치구 수정하기", description = "유저 자치구의 default 값을 수정합니다.")
45+
ApiResponse<Void> updateDefaultUserDistrict(Long userDistrictId,
46+
CustomerDetails customerDetails);
4647
}

src/main/java/com/trashheroesbe/feature/user/application/UserService.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,10 +96,20 @@ public void createUserDistrict(Long userId, String districtId) {
9696
}
9797

9898
@Transactional
99-
public void deleteUserDistrict(Long userDistrictId) {
99+
public void deleteUserDistrict(Long userDistrictId, Long userId) {
100100
if (!userDistrictFinder.existsByUserDistrictId(userDistrictId)) {
101101
throw new BusinessException(ENTITY_NOT_FOUND);
102102
}
103+
104+
List<UserDistrict> userDistricts = userDistrictFinder.findByUserId(userId);
105+
if (userDistricts.size() == MAX_USER_DISTRICTS) {
106+
UserDistrict userDistrict = userDistricts.stream()
107+
.filter(defaultUserDistrict -> !defaultUserDistrict.getId().equals(userDistrictId))
108+
.findFirst()
109+
.orElseThrow(() -> new BusinessException(ENTITY_NOT_FOUND));
110+
userDistrict.updateDefaultDistrict(true);
111+
}
112+
103113
userDistrictRepository.deleteById(userDistrictId);
104114
}
105115

0 commit comments

Comments
 (0)