Skip to content

Commit e849b1f

Browse files
authored
Merge pull request #23 from enjoy-hack/Daeun
Daeun
2 parents 6004e8b + c035338 commit e849b1f

3 files changed

Lines changed: 20 additions & 16 deletions

File tree

src/main/java/com/example/enjoy/controller/FavoriteCourseController.java

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,17 @@
1717
public class FavoriteCourseController {
1818
private final FavoriteCourseService favoriteCourseService;
1919

20-
@Operation(summary = "즐겨찾는 과목 추가", description = "학생의 즐겨찾는 과목을 추가합니다.")
20+
@Operation(summary = "즐겨찾는 과목 추가", description = "학생의 즐겨찾는 과목을 최대 4개까지 한 번에 추가합니다.")
2121
@PostMapping("/add")
22-
public ResponseEntity<Void> addFavoriteCourse(
23-
@RequestParam String courseName,
22+
public ResponseEntity<Void> addFavoriteCourses(
23+
@RequestParam List<String> courseNames,
2424
@RequestParam String studentId) {
2525

26-
favoriteCourseService.addFavoriteCourse(studentId, courseName);
26+
if (courseNames == null || courseNames.isEmpty() || courseNames.size() > 4) {
27+
return ResponseEntity.badRequest().build();
28+
}
29+
30+
favoriteCourseService.addFavoriteCourses(studentId, courseNames);
2731
return ResponseEntity.ok().build();
2832
}
2933

src/main/java/com/example/enjoy/service/FavoriteCourseService.java

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -21,22 +21,22 @@ public class FavoriteCourseService {
2121
private final UserRepository userRepository;
2222

2323
@Transactional
24-
public void addFavoriteCourse(String studentId, String courseName) {
24+
public void addFavoriteCourses(String studentId, List<String> courseNames) {
2525
User user = userRepository.findByStudentId(studentId)
2626
.orElseThrow(() -> new RuntimeException("사용자를 찾을 수 없습니다."));
2727

28+
for (String courseName : courseNames) {
29+
TrackCourse trackCourse = trackCourseRepository.findByCourseName(courseName)
30+
.orElseThrow(() -> new RuntimeException("과목을 찾을 수 없습니다."));
2831

29-
TrackCourse trackCourse = trackCourseRepository.findByCourseName(courseName)
30-
.orElseThrow(() -> new RuntimeException("과목을 찾을 수 없습니다."));
32+
boolean alreadyExists = favoriteCourseRepository
33+
.findByUserAndCourseName(user, courseName)
34+
.isPresent();
3135

32-
// 이미 즐겨찾기한 과목인지 확인
33-
boolean alreadyExists = favoriteCourseRepository
34-
.findByUserAndCourseName(user, courseName)
35-
.isPresent();
36-
37-
if (!alreadyExists) {
38-
FavoriteCourse favoriteCourse = new FavoriteCourse(user, trackCourse.getCourseName());
39-
favoriteCourseRepository.save(favoriteCourse);
36+
if (!alreadyExists) {
37+
FavoriteCourse favoriteCourse = new FavoriteCourse(user, trackCourse.getCourseName());
38+
favoriteCourseRepository.save(favoriteCourse);
39+
}
4040
}
4141
}
4242

src/main/java/com/example/enjoy/service/TrackService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -217,4 +217,4 @@ private double calculateFavoriteScore(TrackProgressDto track, Set<String> favori
217217
public List<Track> getAllTracks() {
218218
return trackRepository.findAll();
219219
}
220-
}
220+
}

0 commit comments

Comments
 (0)