diff --git a/src/main/java/sopt/org/hmh/domain/admin/service/AdminFacade.java b/src/main/java/sopt/org/hmh/domain/admin/service/AdminFacade.java index ac11f6f9..529ff438 100644 --- a/src/main/java/sopt/org/hmh/domain/admin/service/AdminFacade.java +++ b/src/main/java/sopt/org/hmh/domain/admin/service/AdminFacade.java @@ -12,6 +12,7 @@ import sopt.org.hmh.domain.admin.dto.response.AdminTokenResponse; import sopt.org.hmh.domain.admin.exception.AdminError; import sopt.org.hmh.domain.admin.exception.AdminException; +import sopt.org.hmh.domain.challenge.domain.Challenge; import sopt.org.hmh.domain.challenge.domain.exception.ChallengeError; import sopt.org.hmh.domain.challenge.domain.exception.ChallengeException; import sopt.org.hmh.domain.challenge.service.ChallengeService; @@ -65,15 +66,17 @@ public void changeUserInfo(AdminUserInfoRequest request) { @Transactional public void changeDailyChallengeInfo(AdminDailyChallengeRequest request) { Long currentChallengeId = userService.getCurrentChallengeIdByUserId(request.userId()); + Challenge challenge = challengeService.findByIdOrElseThrow(currentChallengeId); List statuses = request.statuses(); LocalDate challengeDate = request.startDate(); - validateStatusesPeriod(currentChallengeId, statuses); + validateStatusesPeriod(challenge, statuses); + challenge.changeStartDate(challengeDate); dailyChallengeService.changeInfoOfDailyChallenges(currentChallengeId, statuses, challengeDate); } - private void validateStatusesPeriod(Long challengeId, List statuses) { - Integer challengePeriod = challengeService.getChallengePeriod(challengeId); + private void validateStatusesPeriod(Challenge challenge, List statuses) { + Integer challengePeriod = challenge.getPeriod(); if (challengePeriod != statuses.size()) { throw new ChallengeException(ChallengeError.INVALID_PERIOD_NUMERIC); } diff --git a/src/main/java/sopt/org/hmh/domain/challenge/domain/Challenge.java b/src/main/java/sopt/org/hmh/domain/challenge/domain/Challenge.java index 0cadad54..82f6d2c6 100644 --- a/src/main/java/sopt/org/hmh/domain/challenge/domain/Challenge.java +++ b/src/main/java/sopt/org/hmh/domain/challenge/domain/Challenge.java @@ -50,4 +50,8 @@ private Challenge(Integer period, Long userId, Long goalTime, List this.apps = apps; this.startDate = startDate; } + + public void changeStartDate(LocalDate startDate) { + this.startDate = startDate; + } } \ No newline at end of file diff --git a/src/main/java/sopt/org/hmh/domain/challenge/service/ChallengeService.java b/src/main/java/sopt/org/hmh/domain/challenge/service/ChallengeService.java index 1a986df7..103fedcc 100644 --- a/src/main/java/sopt/org/hmh/domain/challenge/service/ChallengeService.java +++ b/src/main/java/sopt/org/hmh/domain/challenge/service/ChallengeService.java @@ -35,8 +35,4 @@ public List getCurrentChallengeAppByChallengeId(Long challengeId) public Challenge addChallenge(Challenge challenge) { return challengeRepository.save(challenge); } - - public Integer getChallengePeriod(Long challengeId) { - return this.findByIdOrElseThrow(challengeId).getPeriod(); - } }