Skip to content

Commit 94077aa

Browse files
committed
refactor(recruit-board): RecruitBoard 수정 검증 변경에 따른 리팩토링
1 parent 0a50031 commit 94077aa

File tree

3 files changed

+40
-21
lines changed

3 files changed

+40
-21
lines changed

src/main/java/com/somemore/domains/recruitboard/controller/RecruitBoardCommandApiController.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,8 @@ public ApiResponse<String> updateRecruitBoard(
6363
@RequestPart(value = "img_file", required = false) MultipartFile image
6464
) {
6565
String imgUrl = imageUploadUseCase.uploadImage(new ImageUploadRequestDto(image));
66-
updateRecruitBoardUseCase.updateRecruitBoard(requestDto, id, userId, imgUrl);
66+
LocalDateTime now = LocalDateTime.now();
67+
updateRecruitBoardUseCase.updateRecruitBoard(requestDto, id, userId, imgUrl, now);
6768

6869
return ApiResponse.ok("봉사 활동 모집글 수정 성공");
6970
}
@@ -76,8 +77,8 @@ public ApiResponse<String> updateRecruitBoardLocation(
7677
@PathVariable Long id,
7778
@Valid @RequestBody RecruitBoardLocationUpdateRequestDto requestDto
7879
) {
79-
80-
updateRecruitBoardUseCase.updateRecruitBoardLocation(requestDto, id, userId);
80+
LocalDateTime now = LocalDateTime.now();
81+
updateRecruitBoardUseCase.updateRecruitBoardLocation(requestDto, id, userId, now);
8182
return ApiResponse.ok("봉사 활동 모집글 위치 수정 성공");
8283
}
8384

src/main/java/com/somemore/domains/recruitboard/service/UpdateRecruitBoardService.java

Lines changed: 28 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,12 @@
88
import com.somemore.domains.recruitboard.service.validator.RecruitBoardValidator;
99
import com.somemore.domains.recruitboard.usecase.RecruitBoardQueryUseCase;
1010
import com.somemore.domains.recruitboard.usecase.UpdateRecruitBoardUseCase;
11+
import java.time.LocalDateTime;
12+
import java.util.UUID;
1113
import lombok.RequiredArgsConstructor;
1214
import org.springframework.stereotype.Service;
1315
import org.springframework.transaction.annotation.Transactional;
1416

15-
import java.time.LocalDateTime;
16-
import java.util.UUID;
17-
1817
@RequiredArgsConstructor
1918
@Transactional
2019
@Service
@@ -25,31 +24,46 @@ public class UpdateRecruitBoardService implements UpdateRecruitBoardUseCase {
2524
private final RecruitBoardValidator recruitBoardValidator;
2625

2726
@Override
28-
public void updateRecruitBoard(RecruitBoardUpdateRequestDto dto, Long id, UUID centerId, String imgUrl) {
29-
RecruitBoard recruitBoard = recruitBoardQueryUseCase.getById(id);
30-
recruitBoardValidator.validateWriter(recruitBoard, centerId);
27+
public void updateRecruitBoard(RecruitBoardUpdateRequestDto dto, Long id, UUID centerId,
28+
String imgUrl, LocalDateTime current) {
29+
RecruitBoard recruitBoard = getRecruitBoard(id);
30+
validateUpdatableAndWriter(recruitBoard, centerId, current);
31+
3132
recruitBoardValidator.validateUpdateRecruitBoardTime(recruitBoard.getCreatedAt(),
3233
dto.volunteerStartDateTime(), dto.volunteerEndDateTime());
3334

3435
recruitBoard.updateWith(dto, imgUrl);
3536
}
3637

3738
@Override
38-
public void updateRecruitBoardLocation(RecruitBoardLocationUpdateRequestDto requestDto, Long id, UUID centerId) {
39-
RecruitBoard recruitBoard = recruitBoardQueryUseCase.getById(id);
40-
recruitBoardValidator.validateWriter(recruitBoard, centerId);
41-
42-
updateLocationUseCase.updateLocation(requestDto.toLocationUpdateRequestDto(), recruitBoard.getLocationId());
39+
public void updateRecruitBoardLocation(RecruitBoardLocationUpdateRequestDto requestDto, Long id,
40+
UUID centerId, LocalDateTime current) {
41+
RecruitBoard recruitBoard = getRecruitBoard(id);
42+
validateUpdatableAndWriter(recruitBoard, centerId, current);
4343

44+
updateLocationUseCase.updateLocation(requestDto.toLocationUpdateRequestDto(),
45+
recruitBoard.getLocationId());
4446
recruitBoard.updateWith(requestDto.region());
4547
}
4648

4749
@Override
48-
public void updateRecruitBoardStatus(RecruitStatus status, Long id, UUID centerId, LocalDateTime currentDateTime) {
49-
RecruitBoard recruitBoard = recruitBoardQueryUseCase.getById(id);
50-
recruitBoardValidator.validateWriter(recruitBoard, centerId);
50+
public void updateRecruitBoardStatus(RecruitStatus status, Long id, UUID centerId,
51+
LocalDateTime current) {
52+
RecruitBoard recruitBoard = getRecruitBoard(id);
53+
validateUpdatableAndWriter(recruitBoard, centerId, current);
54+
recruitBoardValidator.validateRecruitStatus(status);
5155

5256
recruitBoard.updateRecruitStatus(status);
5357
}
5458

59+
private void validateUpdatableAndWriter(RecruitBoard recruitBoard, UUID centerId,
60+
LocalDateTime current) {
61+
recruitBoardValidator.validateUpdatable(recruitBoard, current);
62+
recruitBoardValidator.validateWriter(recruitBoard, centerId);
63+
}
64+
65+
private RecruitBoard getRecruitBoard(Long id) {
66+
return recruitBoardQueryUseCase.getById(id);
67+
}
5568
}
69+

src/main/java/com/somemore/domains/recruitboard/usecase/UpdateRecruitBoardUseCase.java

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,18 @@
33
import com.somemore.domains.recruitboard.domain.RecruitStatus;
44
import com.somemore.domains.recruitboard.dto.request.RecruitBoardLocationUpdateRequestDto;
55
import com.somemore.domains.recruitboard.dto.request.RecruitBoardUpdateRequestDto;
6-
76
import java.time.LocalDateTime;
87
import java.util.UUID;
98

109
public interface UpdateRecruitBoardUseCase {
11-
void updateRecruitBoard(RecruitBoardUpdateRequestDto requestDto, Long id, UUID centerId, String imgUrl);
1210

13-
void updateRecruitBoardLocation(RecruitBoardLocationUpdateRequestDto requestDto, Long id, UUID centerId);
11+
void updateRecruitBoard(RecruitBoardUpdateRequestDto dto, Long id, UUID centerId, String imgUrl,
12+
LocalDateTime current);
13+
14+
15+
void updateRecruitBoardLocation(RecruitBoardLocationUpdateRequestDto requestDto, Long id,
16+
UUID centerId, LocalDateTime current);
1417

15-
void updateRecruitBoardStatus(RecruitStatus status, Long id, UUID centerId, LocalDateTime currentDateTime);
18+
void updateRecruitBoardStatus(RecruitStatus status, Long id, UUID centerId,
19+
LocalDateTime currentDateTime);
1620
}

0 commit comments

Comments
 (0)