diff --git a/src/main/java/com/example/codeE/repository/ExerciseRepository.java b/src/main/java/com/example/codeE/repository/ExerciseRepository.java index 9731419d..9570cd84 100644 --- a/src/main/java/com/example/codeE/repository/ExerciseRepository.java +++ b/src/main/java/com/example/codeE/repository/ExerciseRepository.java @@ -1,7 +1,14 @@ package com.example.codeE.repository; import com.example.codeE.model.exercise.Exercise; +import org.springframework.data.jpa.repository.Query; import org.springframework.data.mongodb.repository.MongoRepository; +import java.util.List; + public interface ExerciseRepository extends MongoRepository { + String getAllExercisesByTopicIdSql = "SELECT * FROM exercise WHERE topic_id = ?1"; + + @Query(value = getAllExercisesByTopicIdSql, nativeQuery = true) + List getAllExercisesByTopicId(String courseId); } diff --git a/src/main/java/com/example/codeE/repository/TopicRepository.java b/src/main/java/com/example/codeE/repository/TopicRepository.java index 5931c162..346f264a 100644 --- a/src/main/java/com/example/codeE/repository/TopicRepository.java +++ b/src/main/java/com/example/codeE/repository/TopicRepository.java @@ -18,4 +18,7 @@ public interface TopicRepository extends JpaRepository { " WHERE student_id = ?1 ))) " + "AND course_id = ?2 ; ", nativeQuery = true) List getTopicByUser(String studentId, String courseId); + + String getTopicByCourseId = "SELECT * FROM codee.topic WHERE course_id = ?1"; + List findByCourseId(String courseId); } diff --git a/src/main/java/com/example/codeE/service/exercise/ExerciseImpl.java b/src/main/java/com/example/codeE/service/exercise/ExerciseImpl.java index acc4d53e..cd6b172e 100644 --- a/src/main/java/com/example/codeE/service/exercise/ExerciseImpl.java +++ b/src/main/java/com/example/codeE/service/exercise/ExerciseImpl.java @@ -55,6 +55,8 @@ public class ExerciseImpl implements ExerciseService{ private TopicRepository topicRepository; @Autowired private FileSubmissionService fileSubmissionService; + @Autowired + private CourseRepository courseRepository; @Override public Exercise saveQuizExercise(QuizExercise exercise) { @@ -354,7 +356,16 @@ private List getGroupResponse(List groupIds) { @Override public List getAllExerciseInCourse(String courseId) { - return this.exerciseRepository.findAll(); + this.courseRepository.findById(courseId).orElseThrow(() -> new NoSuchElementException("No course found with ID: " + courseId)); + List topics = topicRepository.findByCourseId(courseId); + List exercises = new ArrayList<>(); + + for (Topic topic : topics) { + List topicExercises = exerciseRepository.getAllExercisesByTopicId(topic.getTopicId()); + exercises.addAll(topicExercises); + } + + return exercises; } @Override