Skip to content

Commit

Permalink
[Refactor] 코스 조회 API 조회 실패 case 추가
Browse files Browse the repository at this point in the history
  • Loading branch information
0-x-14 committed Jun 7, 2024
1 parent 0ab3f11 commit 2106868
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ public FindAnotherUserCoursesReponseDTO getCoursesByAnotherUser(Long userId) {
return FindAnotherUserCoursesReponseDTO.builder()
.user(null)
.courses(new ArrayList<>())
.message("사용자 조회 과정에서 오류가 발생하였습니다").build();
.message("존재하지 않는 사용자입니다").build();
}

List<Course> courses = courseRepository.findCoursesByUserUserId(userId);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,10 @@
import ddareunging.ddareunging_server.domain.Course;
import ddareunging.ddareunging_server.domain.Like;
import ddareunging.ddareunging_server.domain.User;
import ddareunging.ddareunging_server.dto.CourseDTO;
import ddareunging.ddareunging_server.dto.FindCoursesResponseDTO;
import ddareunging.ddareunging_server.dto.FindMyCoursesResponseDTO;
import ddareunging.ddareunging_server.dto.FindMyLikedCoursesResponseDTO;
import ddareunging.ddareunging_server.dto.*;
import ddareunging.ddareunging_server.repository.CourseRepository;
import ddareunging.ddareunging_server.repository.LikeRepository;
import ddareunging.ddareunging_server.repository.UserRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
Expand All @@ -23,19 +21,32 @@
public class CourseService {
private final CourseRepository courseRepository;
private final LikeRepository likeRepository;
private final UserRepository userRepository;

@Autowired
public CourseService(CourseRepository courseRepository, LikeRepository likeRepository) {
public CourseService(CourseRepository courseRepository, LikeRepository likeRepository, UserRepository userRepository) {
this.courseRepository = courseRepository;
this.likeRepository = likeRepository;
this.userRepository = userRepository;
}

@Transactional
public FindCoursesResponseDTO getCoursesByTheme(Integer theme) {
try {
// 테마로 코스 조회

List<Course> courses = courseRepository.findCoursesByTheme(theme);

if (courses.isEmpty()) {
// 테마를 찾을 수 없는 경우
return FindCoursesResponseDTO.builder()
.theme(null)
.courses(new ArrayList<>())
.message("존재하지 않는 테마입니다").build();
}
// 현재 서비스에 등록된 테마는 두 가지
// 추후 테마가 추가되어도 서비스에서 자체적으로 제공하는 테마별 추천 코스가 있다고 가정하고 courses가 null인 경우 존재하지 않는 테마입니다라는 메세지를 반환하도록 함

List<CourseDTO> coursesDTO = courses.stream()
.map(course -> {
String userNickname = course.getUser().getNickname();
Expand All @@ -61,6 +72,16 @@ public FindMyCoursesResponseDTO getCoursesByUser(Long userId) {
try {
// 나만의 코스 조회

User user = userRepository.findUserByUserId(userId);

if (user == null) {
// 사용자를 찾을 수 없는 경우
return FindMyCoursesResponseDTO.builder()
.userId(null)
.courses(new ArrayList<>())
.message("조회되지 않는 사용자입니다").build();
}

List<Course> courses = courseRepository.findCoursesByUserUserId(userId);

if (courses.isEmpty()) {
Expand Down Expand Up @@ -96,6 +117,16 @@ public FindMyLikedCoursesResponseDTO getLikedCoursesByUser(Long userId) {
try {
// 내가 찜한 코스 조회

User user = userRepository.findUserByUserId(userId);

if (user == null) {
// 사용자를 찾을 수 없는 경우
return FindMyLikedCoursesResponseDTO.builder()
.userId(null)
.courses(new ArrayList<>())
.message("존재하지 않는 사용자입니다").build();
}

List<Like> likes = likeRepository.findLikeByUserId(userId);

if (likes.isEmpty()) {
Expand Down

0 comments on commit 2106868

Please sign in to comment.