From 8065010d4ad87a24d45b04a7d2bd2910c3cab942 Mon Sep 17 00:00:00 2001 From: Laurine <lenetlaurine@gmail.com> Date: Wed, 13 Sep 2023 14:05:24 +0200 Subject: [PATCH] finish major controller --- back-skeleton/README.MD | 1 + .../com/takima/backskeleton/DAO/MajorDao.java | 15 +++++++++++ .../controllers/MajorController.java | 27 +++++++++++++++++++ .../takima/backskeleton/models/Course.java | 2 -- .../com/takima/backskeleton/models/Major.java | 1 - .../backskeleton/services/MajorService.java | 26 ++++++++++++++++++ 6 files changed, 69 insertions(+), 3 deletions(-) create mode 100644 back-skeleton/src/main/java/com/takima/backskeleton/DAO/MajorDao.java create mode 100644 back-skeleton/src/main/java/com/takima/backskeleton/controllers/MajorController.java create mode 100644 back-skeleton/src/main/java/com/takima/backskeleton/services/MajorService.java diff --git a/back-skeleton/README.MD b/back-skeleton/README.MD index 4ec03ee..4bebebf 100644 --- a/back-skeleton/README.MD +++ b/back-skeleton/README.MD @@ -2,6 +2,7 @@ ## Set up 1. Copie-colle le .env.sample en .env +2. Fait un `docker-compose up` 2. Rajoute le pluggin : https://plugins.jetbrains.com/plugin/7861-envfile 3. <img src="img-readme/img.png"> 3. <img src="img-readme/img_1.png"> diff --git a/back-skeleton/src/main/java/com/takima/backskeleton/DAO/MajorDao.java b/back-skeleton/src/main/java/com/takima/backskeleton/DAO/MajorDao.java new file mode 100644 index 0000000..9d54218 --- /dev/null +++ b/back-skeleton/src/main/java/com/takima/backskeleton/DAO/MajorDao.java @@ -0,0 +1,15 @@ +package com.takima.backskeleton.DAO; + +import com.takima.backskeleton.models.Major; +import com.takima.backskeleton.models.Student; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; +import org.springframework.stereotype.Repository; + +import java.util.List; + +@Repository +public interface MajorDao extends JpaRepository<Major, Long> { + @Query("SELECT m.students FROM Major m WHERE m.id= :majorId") + List<Student> getAllStudentsFromMajor(Long majorId); +} diff --git a/back-skeleton/src/main/java/com/takima/backskeleton/controllers/MajorController.java b/back-skeleton/src/main/java/com/takima/backskeleton/controllers/MajorController.java new file mode 100644 index 0000000..b531543 --- /dev/null +++ b/back-skeleton/src/main/java/com/takima/backskeleton/controllers/MajorController.java @@ -0,0 +1,27 @@ +package com.takima.backskeleton.controllers; + +import com.takima.backskeleton.models.Major; +import com.takima.backskeleton.models.Student; +import com.takima.backskeleton.services.MajorService; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@CrossOrigin +@RequestMapping("majors") +@RestController +@RequiredArgsConstructor +public class MajorController { + private final MajorService majorService; + + @GetMapping("") + public List<Major> findAll() { + return majorService.findAll(); + } + + @GetMapping("/{id}/students") + public List<Student> getStudentsOfMajor(@PathVariable Long id) { + return majorService.getStudentsOfMajor(id); + } +} diff --git a/back-skeleton/src/main/java/com/takima/backskeleton/models/Course.java b/back-skeleton/src/main/java/com/takima/backskeleton/models/Course.java index c0ed9ab..bf8cd46 100644 --- a/back-skeleton/src/main/java/com/takima/backskeleton/models/Course.java +++ b/back-skeleton/src/main/java/com/takima/backskeleton/models/Course.java @@ -1,9 +1,7 @@ package com.takima.backskeleton.models; import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonManagedReference; import jakarta.persistence.*; -import lombok.Builder; import lombok.Getter; import lombok.NoArgsConstructor; diff --git a/back-skeleton/src/main/java/com/takima/backskeleton/models/Major.java b/back-skeleton/src/main/java/com/takima/backskeleton/models/Major.java index 57a2e8a..4746c4c 100644 --- a/back-skeleton/src/main/java/com/takima/backskeleton/models/Major.java +++ b/back-skeleton/src/main/java/com/takima/backskeleton/models/Major.java @@ -2,7 +2,6 @@ package com.takima.backskeleton.models; import com.fasterxml.jackson.annotation.JsonIgnore; import jakarta.persistence.*; -import lombok.Builder; import lombok.Getter; import lombok.NoArgsConstructor; diff --git a/back-skeleton/src/main/java/com/takima/backskeleton/services/MajorService.java b/back-skeleton/src/main/java/com/takima/backskeleton/services/MajorService.java new file mode 100644 index 0000000..03feb0f --- /dev/null +++ b/back-skeleton/src/main/java/com/takima/backskeleton/services/MajorService.java @@ -0,0 +1,26 @@ +package com.takima.backskeleton.services; + +import com.takima.backskeleton.DAO.MajorDao; +import com.takima.backskeleton.models.Major; +import com.takima.backskeleton.models.Student; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Component; + +import java.util.ArrayList; +import java.util.List; + +@Component +@RequiredArgsConstructor +public class MajorService { + private final MajorDao majorDao; + public List<Major> findAll() { + Iterable<Major> it = majorDao.findAll(); + List <Major> majors = new ArrayList<>(); + it.forEach(majors::add); + return majors; + } + + public List<Student> getStudentsOfMajor(Long id) { + return majorDao.getAllStudentsFromMajor(id); + } +} -- GitLab