88import com .somemore .domains .recruitboard .service .validator .RecruitBoardValidator ;
99import com .somemore .domains .recruitboard .usecase .RecruitBoardQueryUseCase ;
1010import com .somemore .domains .recruitboard .usecase .UpdateRecruitBoardUseCase ;
11+ import java .time .LocalDateTime ;
12+ import java .util .UUID ;
1113import lombok .RequiredArgsConstructor ;
1214import org .springframework .stereotype .Service ;
1315import 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+
0 commit comments