diff --git a/back-skeleton/README.MD b/back-skeleton/README.MD index 4ec03ee7d2825896b858a0b3733b23332dad2b3c..4bebebfa8d96376b293d1ec635ac06769d25f0cc 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 0000000000000000000000000000000000000000..9d54218305a010bef4efee75b5d85f827ef78b29 --- /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 0000000000000000000000000000000000000000..b5315436e961bf04170d34178c6838011e7e669d --- /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 c0ed9abf02c1eb6ee7cf45ad79bad5797fdcfe45..bf8cd46b1fa43c7fe8e85422032affb74d252b8e 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 57a2e8afd6037730b5f1acb106ad248c27e27bde..4746c4c0c82ccde04c18d5ff016b360056a11438 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 0000000000000000000000000000000000000000..03feb0f83a1796d353faf3d891e4afcd2da83f5d --- /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); + } +}