@@ -56,7 +56,7 @@ public class ChallengeService {
5656 private final UserTemplateRepository userTemplateRepository ;
5757 private final EmailService emailService ;
5858
59- // ========== Create API ==========
59+ // ========== CreateChallenge API ==========
6060 public CreateChallengeResponseDto createChallenge (CreateChallengeRequestDto requestDto ) {
6161 // 1. 조직정보 추출
6262 Organization organization = tokenUtil .getOrganization ();
@@ -98,8 +98,11 @@ public CreateChallengeResponseDto createChallenge(CreateChallengeRequestDto requ
9898 }
9999
100100 // 6. Response 생성
101- List <Challenge > challenges = challengeRepository .findByOrganizationId (organization .getId ())
102- .orElseThrow (() -> new CustomException (ErrorCode .CHALLENGE_NOT_FOUND ));
101+ List <Challenge > challenges = challengeRepository .findByOrganizationId (organization .getId ());
102+ if (challenges .isEmpty ()) {
103+ throw new CustomException (ErrorCode .CHALLENGE_NOT_FOUND );
104+ }
105+
103106 List <ChallengeResponse > challengeList = challenges .stream ()
104107 .map (entity -> new ChallengeResponse (entity .getId (), entity .getName ()))
105108 .collect (Collectors .toList ());
@@ -110,25 +113,29 @@ public CreateChallengeResponseDto createChallenge(CreateChallengeRequestDto requ
110113 // ========== Get Dashboard API ==========
111114 public List <UserStatus > getDashboard (Long challengeId ) {
112115 // 1. 챌린지 날짜 리스트 추출
113- List <ChallengeDay > challengeDayList = challengeDayRepository .findByChallengeId (challengeId )
114- .orElseThrow (() -> new CustomException (ErrorCode .ETC_ERROR ));
116+ List <ChallengeDay > challengeDayList = challengeDayRepository .findByChallengeId (challengeId );
117+
118+ if (challengeDayList .isEmpty ()) {
119+ throw new CustomException (ErrorCode .CHALLENGE_DAY_NOT_FOUND );
120+ }
115121
116122 challengeDayList = challengeDayList .stream ()
117123 .sorted (Comparator .comparing (ChallengeDay ::getDay ))
118124 .toList ();
119125
120126 // 2. 챌린지 참여 유저 리스트 추출
121- List <UserChallenge > userChallengeList = userChallengeRepository .findByChallengeId (challengeId )
122- .orElseThrow (() -> new CustomException (ErrorCode .ETC_ERROR ));
127+ List <UserChallenge > userChallengeList = userChallengeRepository .findByChallengeId (challengeId );
123128
124129 // 3. 유저별 참여여부 확인
125130 List <UserStatus > statusTable = new ArrayList <>();
126131
127132 for (UserChallenge userChallenge : userChallengeList ) {
128133 List <Status > statusList = new ArrayList <>();
129134 List <UserTemplate > userTemplateList = userTemplateRepository .findByUserChallengeId (
130- userChallenge .getId ())
131- .orElseThrow (() -> new CustomException (ErrorCode .ETC_ERROR ));
135+ userChallenge .getId ());
136+ if (userTemplateList .isEmpty ()) {
137+ throw new CustomException (ErrorCode .USER_TEMPLATE_NOT_FOUND );
138+ }
132139
133140 for (ChallengeDay challengeDay : challengeDayList ) {
134141 // 참여여부 확인과정
@@ -149,8 +156,10 @@ public List<UserStatus> getDashboard(Long challengeId) {
149156
150157 // ========== Get Questions API ==========
151158 public QuestionsResponseDto getQuestions (Long challengeId ) {
152- List <Question > questionList = questionRepository .findByChallengeId (challengeId )
153- .orElseThrow (() -> new CustomException ((ErrorCode .ETC_ERROR )));
159+ List <Question > questionList = questionRepository .findByChallengeId (challengeId );
160+ if (questionList .isEmpty ()) {
161+ throw new CustomException (ErrorCode .QUESTION_NOT_FOUND );
162+ }
154163
155164 List <String > basicQuestions = questionList .stream ()
156165 .filter (question -> question .getKeyword () == null )
@@ -179,29 +188,34 @@ public QuestionsResponseDto getQuestions(Long challengeId) {
179188 public ChallengeInfoResponseDto getInfo (Long challengeId ) {
180189 // 1. 챌린지 기본 정보 가져오기
181190 Challenge challenge = challengeRepository .findById (challengeId )
182- .orElseThrow (() -> new CustomException (ErrorCode .ETC_ERROR ));
191+ .orElseThrow (() -> new CustomException (ErrorCode .CHALLENGE_NOT_FOUND ));
183192
184193 // 2. 챌린지 날짜 정보 가져오기
185- List <ChallengeDay > challengeDays = challengeDayRepository .findByChallengeId (challengeId )
186- .orElseThrow (() -> new CustomException (ErrorCode .ETC_ERROR ));
194+ List <ChallengeDay > challengeDayList = challengeDayRepository .findByChallengeId (challengeId );
195+
196+ if (challengeDayList .isEmpty ()) {
197+ throw new CustomException (ErrorCode .CHALLENGE_DAY_NOT_FOUND );
198+ }
187199
188200 return new ChallengeInfoResponseDto (
189201 challenge .getName (),
190202 challenge .getStartAt (),
191203 challenge .getFinishAt (),
192- challengeDays .stream ().map (ChallengeDay ::getDay ).collect (Collectors .toList ())
204+ challengeDayList .stream ().map (ChallengeDay ::getDay ).collect (Collectors .toList ())
193205 );
194206 }
195207
196208 // ========== Put Questions API ==========
197209 public QuestionsResponseDto putQuestions (Long challengeId , QuestionsRequestDto requestDto ) {
198210 // 1. 챌린지 조회
199211 Challenge challenge = challengeRepository .findById (challengeId )
200- .orElseThrow (() -> new CustomException (ErrorCode .ETC_ERROR ));
212+ .orElseThrow (() -> new CustomException (ErrorCode .CHALLENGE_NOT_FOUND ));
201213
202214 // 2. 질문 리스트 조회
203- List <Question > questionList = questionRepository .findByChallengeId (challengeId )
204- .orElseThrow (() -> new CustomException ((ErrorCode .ETC_ERROR )));
215+ List <Question > questionList = questionRepository .findByChallengeId (challengeId );
216+ if (questionList .isEmpty ()) {
217+ throw new CustomException (ErrorCode .QUESTION_NOT_FOUND );
218+ }
205219
206220 // 3. 베이직 질문 처리
207221 List <String > requestBasicQuestions = requestDto .getBasicQuestions ();
@@ -310,7 +324,7 @@ public QuestionsResponseDto putQuestions(Long challengeId, QuestionsRequestDto r
310324 public ChallengeInfoResponseDto putInfo (Long challengeId , ChallengeInfoRequestDto requestDto ) {
311325 // 1. 챌린지 기본 정보 조회
312326 Challenge challenge = challengeRepository .findById (challengeId )
313- .orElseThrow (() -> new CustomException (ErrorCode .ETC_ERROR ));
327+ .orElseThrow (() -> new CustomException (ErrorCode .CHALLENGE_NOT_FOUND ));
314328
315329 // 2. 챌린지 기본 정보 수정 및 저장
316330 challenge .setName (requestDto .getName ());
@@ -319,8 +333,11 @@ public ChallengeInfoResponseDto putInfo(Long challengeId, ChallengeInfoRequestDt
319333 Challenge editedChallenge = challengeRepository .save (challenge );
320334
321335 // 3. 챌린지 날짜 정보 조회
322- List <ChallengeDay > challengeDays = challengeDayRepository .findByChallengeId (challengeId )
323- .orElseThrow (() -> new CustomException (ErrorCode .ETC_ERROR ));
336+ List <ChallengeDay > challengeDays = challengeDayRepository .findByChallengeId (challengeId );
337+
338+ if (challengeDays .isEmpty ()) {
339+ throw new CustomException (ErrorCode .CHALLENGE_DAY_NOT_FOUND );
340+ }
324341
325342 // 4. 챌린지 날짜 정보 수정 및 저장
326343 // 1) 새로운 날짜가 기존 리스트에 없으면 추가
@@ -345,8 +362,11 @@ public ChallengeInfoResponseDto putInfo(Long challengeId, ChallengeInfoRequestDt
345362 }
346363
347364 // 5. 변경된 날짜 정보 조회
348- List <ChallengeDay > editedChallengeDays = challengeDayRepository .findByChallengeId (challengeId )
349- .orElseThrow (() -> new CustomException (ErrorCode .ETC_ERROR ));
365+ List <ChallengeDay > editedChallengeDays = challengeDayRepository .findByChallengeId (challengeId );
366+
367+ if (editedChallengeDays .isEmpty ()) {
368+ throw new CustomException (ErrorCode .CHALLENGE_DAY_NOT_FOUND );
369+ }
350370
351371 return new ChallengeInfoResponseDto (
352372 editedChallenge .getName (),
0 commit comments