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 462469cf..e073d9f2 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 @@ -1,5 +1,6 @@ package sopt.org.HMH.domain.challenge.service; +import lombok.NonNull; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -13,6 +14,8 @@ import java.util.List; +import static java.util.Objects.nonNull; + @Service @RequiredArgsConstructor public class ChallengeService { @@ -33,7 +36,9 @@ public Challenge addChallenge(Long userId, Integer period, Long goalTime) { public Challenge updateChallengeForPeriodWithInfo(Challenge challenge, List apps, String os) { for (int count = 0; count < challenge.getPeriod(); count++) { DailyChallenge dailyChallenge = dailyChallengeService.addDailyChallenge(challenge); - appService.addApps(dailyChallenge, apps, os); + if (nonNull(apps)) { + appService.addApps(dailyChallenge, apps, os); + } } return challenge; @@ -41,7 +46,8 @@ public Challenge updateChallengeForPeriodWithInfo(Challenge challenge, List getLastApps(Long userId) { List lastDailyChallenges = challengeRepository.findFirstByUserIdOrderByCreatedAtDesc(userId).getDailyChallenges(); - List lastApps = lastDailyChallenges.get(lastDailyChallenges.size()-1) + if (lastDailyChallenges.size() == 0) { return null; } + List lastApps = lastDailyChallenges.get(lastDailyChallenges.size() - 1) .getApps() .stream() .map(app -> new AppGoalTimeRequest(app.getAppCode(), app.getGoalTime()))