Merge branch 'master' into tonitch/front/manageCourses/LinkToBackend
This commit is contained in:
		| @ -0,0 +1,70 @@ | ||||
| package ovh.herisson.Clyde.EndPoints; | ||||
|  | ||||
|  | ||||
| import org.springframework.http.HttpStatus; | ||||
| import org.springframework.http.ResponseEntity; | ||||
| import org.springframework.web.bind.annotation.*; | ||||
| import ovh.herisson.Clyde.Services.AuthenticatorService; | ||||
| import ovh.herisson.Clyde.Services.CurriculumCourseService; | ||||
| import ovh.herisson.Clyde.Services.CurriculumService; | ||||
| import ovh.herisson.Clyde.Tables.Curriculum; | ||||
| import ovh.herisson.Clyde.Tables.CurriculumCourse; | ||||
| import ovh.herisson.Clyde.Tables.Role; | ||||
| import ovh.herisson.Clyde.Tables.User; | ||||
|  | ||||
| import java.util.Map; | ||||
|  | ||||
| @RestController | ||||
| public class CurriculumController { | ||||
|  | ||||
|  | ||||
|     private final CurriculumService curriculumServ; | ||||
|     private final AuthenticatorService authServ; | ||||
|  | ||||
|     private final CurriculumCourseService curriculumCourseServ; | ||||
|  | ||||
|     public CurriculumController(CurriculumService curriculumServ, AuthenticatorService authServ, CurriculumCourseService curriculumCourseServ){ | ||||
|         this.curriculumServ = curriculumServ; | ||||
|         this.authServ = authServ; | ||||
|         this.curriculumCourseServ = curriculumCourseServ; | ||||
|     } | ||||
|  | ||||
|     @GetMapping("/curriculum/{id}") | ||||
|     public ResponseEntity<Curriculum> findById(@PathVariable long id){ | ||||
|         return new ResponseEntity<>(curriculumServ.findById(id), HttpStatus.OK); | ||||
|     } | ||||
|  | ||||
|     @GetMapping("/curriculums") | ||||
|     public ResponseEntity<Iterable<Map<String, Object>>> findAllindDepth(){ | ||||
|         return new ResponseEntity<>(curriculumCourseServ.getAllDepthCurriculum(),HttpStatus.OK); | ||||
|     } | ||||
|  | ||||
|     @GetMapping("/curriculum") | ||||
|     public ResponseEntity<Iterable<CurriculumCourse>> findAll(){ | ||||
|         return new ResponseEntity<>(curriculumCourseServ.findAll(),HttpStatus.OK); | ||||
|     } | ||||
|  | ||||
|     /**@PostMapping("/curriculum") | ||||
|     public ResponseEntity<String> postCurriculum(@RequestHeader("Authorization") String token,@RequestBody Curriculum curriculum){ | ||||
|  | ||||
|         if (!isSecretaryOrAdmin(token)){ | ||||
|             return new UnauthorizedResponse<>("you're not allowed to post a Curriculum"); | ||||
|         } | ||||
|  | ||||
|         CurriculumServ.save(Curriculum); | ||||
|  | ||||
|         return new ResponseEntity<>("created !",HttpStatus.CREATED); | ||||
|     }**/ | ||||
|  | ||||
|  | ||||
|  | ||||
|     private boolean isSecretaryOrAdmin(String authorization){ | ||||
|         if (authorization ==null) | ||||
|             return false; | ||||
|  | ||||
|         User poster = authServ.getUserFromToken(authorization); | ||||
|         if (poster == null) return false; | ||||
|  | ||||
|         return poster.getRole() == Role.Secretary && poster.getRole() == Role.Admin; | ||||
|     } | ||||
| } | ||||
| @ -1,71 +0,0 @@ | ||||
| package ovh.herisson.Clyde.EndPoints; | ||||
|  | ||||
|  | ||||
| import org.springframework.http.HttpStatus; | ||||
| import org.springframework.http.ResponseEntity; | ||||
| import org.springframework.web.bind.annotation.*; | ||||
| import ovh.herisson.Clyde.Responses.UnauthorizedResponse; | ||||
| import ovh.herisson.Clyde.Services.AuthenticatorService; | ||||
| import ovh.herisson.Clyde.Services.CursusCourseService; | ||||
| import ovh.herisson.Clyde.Services.CursusService; | ||||
| import ovh.herisson.Clyde.Tables.Cursus; | ||||
| import ovh.herisson.Clyde.Tables.CursusCourse; | ||||
| import ovh.herisson.Clyde.Tables.Role; | ||||
| import ovh.herisson.Clyde.Tables.User; | ||||
|  | ||||
| import java.util.Map; | ||||
|  | ||||
| @RestController | ||||
| public class CursusController { | ||||
|  | ||||
|  | ||||
|     private final CursusService cursusServ; | ||||
|     private final AuthenticatorService authServ; | ||||
|  | ||||
|     private final CursusCourseService cursusCourseServ; | ||||
|  | ||||
|     public CursusController(CursusService cursusServ, AuthenticatorService authServ, CursusCourseService cursusCourseServ){ | ||||
|         this.cursusServ = cursusServ; | ||||
|         this.authServ = authServ; | ||||
|         this.cursusCourseServ = cursusCourseServ; | ||||
|     } | ||||
|  | ||||
|     @GetMapping("/cursus/{id}") | ||||
|     public ResponseEntity<Cursus> findById(@PathVariable long id){ | ||||
|         return new ResponseEntity<>(cursusServ.findById(id), HttpStatus.OK); | ||||
|     } | ||||
|  | ||||
|     @GetMapping("/curriculums") | ||||
|     public ResponseEntity<Iterable<Map<String, Object>>> findAllindDepth(){ | ||||
|         return new ResponseEntity<>(cursusCourseServ.getAllDepthCursus(),HttpStatus.OK); | ||||
|     } | ||||
|  | ||||
|     @GetMapping("/curriculum") | ||||
|     public ResponseEntity<Iterable<CursusCourse>> findAll(){ | ||||
|         return new ResponseEntity<>(cursusCourseServ.findAll(),HttpStatus.OK); | ||||
|     } | ||||
|  | ||||
|     /**@PostMapping("/cursus") | ||||
|     public ResponseEntity<String> postCursus(@RequestHeader("Authorization") String token,@RequestBody Cursus cursus){ | ||||
|  | ||||
|         if (!isSecretaryOrAdmin(token)){ | ||||
|             return new UnauthorizedResponse<>("you're not allowed to post a cursus"); | ||||
|         } | ||||
|  | ||||
|         cursusServ.save(cursus); | ||||
|  | ||||
|         return new ResponseEntity<>("created !",HttpStatus.CREATED); | ||||
|     }**/ | ||||
|  | ||||
|  | ||||
|  | ||||
|     private boolean isSecretaryOrAdmin(String authorization){ | ||||
|         if (authorization ==null) | ||||
|             return false; | ||||
|  | ||||
|         User poster = authServ.getUserFromToken(authorization); | ||||
|         if (poster == null) return false; | ||||
|  | ||||
|         return poster.getRole() == Role.Secretary && poster.getRole() == Role.Admin; | ||||
|     } | ||||
| } | ||||
| @ -69,7 +69,7 @@ public class InscriptionController { | ||||
|         return null; | ||||
|     } | ||||
|  | ||||
|     private Map<String,Object> requestWithoutPassword(InscriptionRequest inscriptionRequest) { | ||||
|     private Map<String, Object> requestWithoutPassword(InscriptionRequest inscriptionRequest) { | ||||
|         Map<String, Object> toReturn = new HashMap<>(); | ||||
|  | ||||
|         toReturn.put("id", inscriptionRequest.getId()); | ||||
| @ -78,7 +78,7 @@ public class InscriptionController { | ||||
|         toReturn.put("address", inscriptionRequest.getAddress()); | ||||
|         toReturn.put("birthDate", inscriptionRequest.getBirthDate()); | ||||
|         toReturn.put("country", inscriptionRequest.getCountry()); | ||||
|         toReturn.put("cursus", inscriptionRequest.getCursus()); | ||||
|         toReturn.put("curriculum", inscriptionRequest.getCurriculum()); | ||||
|         toReturn.put("profilePictureUrl", inscriptionRequest.getProfilePicture()); | ||||
|         toReturn.put("state", inscriptionRequest.getState()); | ||||
|         return toReturn; | ||||
|  | ||||
| @ -20,18 +20,18 @@ public class MockController { | ||||
|     public final UserRepository userRepo; | ||||
|     public final TokenRepository tokenRepo; | ||||
|     public final TokenService tokenService; | ||||
|     public final CursusCourseService cursusCourseService; | ||||
|     public final CursusService cursusService; | ||||
|     public final CurriculumCourseService CurriculumCourseService; | ||||
|     public final CurriculumService curriculumService; | ||||
|     public final CourseService courseService; | ||||
|     ArrayList<User> mockUsers; | ||||
|  | ||||
|  | ||||
|     public MockController(UserRepository userRepo, TokenRepository tokenRepo, TokenService tokenService, CursusCourseService cursusCourseService, CursusService cursusService, CourseService courseService){ | ||||
|     public MockController(UserRepository userRepo, TokenRepository tokenRepo, TokenService tokenService, CurriculumCourseService CurriculumCourseService, CurriculumService curriculumService, CourseService courseService){ | ||||
|         this.tokenRepo = tokenRepo; | ||||
|         this.userRepo = userRepo; | ||||
|         this.tokenService = tokenService; | ||||
|         this.cursusCourseService = cursusCourseService; | ||||
|         this.cursusService = cursusService; | ||||
|         this.CurriculumCourseService = CurriculumCourseService; | ||||
|         this.curriculumService = curriculumService; | ||||
|         this.courseService = courseService; | ||||
|     } | ||||
|  | ||||
| @ -51,20 +51,20 @@ public class MockController { | ||||
|         User joe = new User("Mama","Joe","student@student.com","roundabout","DaWarudo",new Date(0), null,Role.Student,passwordEncoder.encode("student")); | ||||
|         User meh = new User("Inspiration","lackOf","secretary@secretary.com","a Box","the street",new Date(0), null,Role.Teacher,passwordEncoder.encode("secretary")); | ||||
|         User joke = new User("CthemBalls","Lemme","teacher@teacher.com","lab","faculty",new Date(0), null,Role.Teacher,passwordEncoder.encode("teacher")); | ||||
|         mockUsers = new ArrayList<User>(Arrays.asList(herobrine,joe,meh,joke)); | ||||
|         mockUsers = new ArrayList<>(Arrays.asList(herobrine,joe,meh,joke)); | ||||
|  | ||||
|         userRepo.saveAll(mockUsers); | ||||
|  | ||||
|  | ||||
|         // Course / Curriculum part | ||||
|  | ||||
|         Cursus infoBab1 = new Cursus(1,"info"); | ||||
|         Cursus chemistryBab1 = new Cursus(1,"chemistry"); | ||||
|         Cursus psychologyBab1 = new Cursus(1,"psychology"); | ||||
|         Curriculum infoBab1 = new Curriculum(1,"info"); | ||||
|         Curriculum chemistryBab1 = new Curriculum(1,"chemistry"); | ||||
|         Curriculum psychologyBab1 = new Curriculum(1,"psychology"); | ||||
|  | ||||
|         cursusService.save(infoBab1); | ||||
|         cursusService.save(chemistryBab1); | ||||
|         cursusService.save(psychologyBab1); | ||||
|         curriculumService.save(infoBab1); | ||||
|         curriculumService.save(chemistryBab1); | ||||
|         curriculumService.save(psychologyBab1); | ||||
|  | ||||
|  | ||||
|         Course progra1 = new Course(5,"Programmation et algorithimque 1","TODO DELETE"); | ||||
| @ -78,15 +78,15 @@ public class MockController { | ||||
|         courseService.save(commun); | ||||
|  | ||||
|  | ||||
|         cursusCourseService.save(new CursusCourse(infoBab1,progra1)); | ||||
|         cursusCourseService.save(new CursusCourse(infoBab1,commun)); | ||||
|         CurriculumCourseService.save(new CurriculumCourse(infoBab1,progra1)); | ||||
|         CurriculumCourseService.save(new CurriculumCourse(infoBab1,commun)); | ||||
|  | ||||
|         cursusCourseService.save(new CursusCourse(psychologyBab1,psycho1)); | ||||
|         cursusCourseService.save(new CursusCourse(psychologyBab1,commun)); | ||||
|         CurriculumCourseService.save(new CurriculumCourse(psychologyBab1,psycho1)); | ||||
|         CurriculumCourseService.save(new CurriculumCourse(psychologyBab1,commun)); | ||||
|  | ||||
|  | ||||
|         cursusCourseService.save(new CursusCourse(chemistryBab1,commun)); | ||||
|         cursusCourseService.save(new CursusCourse(chemistryBab1,chemistry1)); | ||||
|         CurriculumCourseService.save(new CurriculumCourse(chemistryBab1,commun)); | ||||
|         CurriculumCourseService.save(new CurriculumCourse(chemistryBab1,chemistry1)); | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| @ -0,0 +1,17 @@ | ||||
| package ovh.herisson.Clyde.Repositories; | ||||
|  | ||||
| import org.springframework.data.jpa.repository.Query; | ||||
| import org.springframework.data.repository.CrudRepository; | ||||
| import ovh.herisson.Clyde.Tables.Course; | ||||
| import ovh.herisson.Clyde.Tables.Curriculum; | ||||
| import ovh.herisson.Clyde.Tables.CurriculumCourse; | ||||
|  | ||||
| public interface CurriculumCourseRepository extends CrudRepository<CurriculumCourse,Long> { | ||||
|  | ||||
|     @Query("select distinct cc.course from CurriculumCourse cc where cc.curriculum = ?1") | ||||
|     Iterable<Course> findCoursesByCurriculum(Curriculum curriculum); | ||||
|  | ||||
|  | ||||
|     @Query("select distinct cc.curriculum from  CurriculumCourse cc") | ||||
|     Iterable<Curriculum> findDistinctCurriculums(); | ||||
| } | ||||
| @ -0,0 +1,8 @@ | ||||
| package ovh.herisson.Clyde.Repositories; | ||||
|  | ||||
| import org.springframework.data.repository.CrudRepository; | ||||
| import ovh.herisson.Clyde.Tables.Curriculum; | ||||
|  | ||||
| public interface CurriculumRepository extends CrudRepository<Curriculum,Long> { | ||||
|     Curriculum findById(long id); | ||||
| } | ||||
| @ -1,20 +0,0 @@ | ||||
| package ovh.herisson.Clyde.Repositories; | ||||
|  | ||||
| import org.springframework.data.jpa.repository.Query; | ||||
| import org.springframework.data.repository.CrudRepository; | ||||
| import ovh.herisson.Clyde.Tables.Course; | ||||
| import ovh.herisson.Clyde.Tables.Cursus; | ||||
| import ovh.herisson.Clyde.Tables.CursusCourse; | ||||
|  | ||||
| public interface CursusCourseRepository extends CrudRepository<CursusCourse,Long> { | ||||
|  | ||||
|  | ||||
|     //todo faire custom query pour trouver tous les cours d'un cursus par un cursusId | ||||
|  | ||||
|     @Query("select distinct cc.course from CursusCourse cc where cc.cursus = ?1") | ||||
|     Iterable<Course> findCoursesByCursus(Cursus cursus); | ||||
|  | ||||
|  | ||||
|     @Query("select distinct cc.cursus from  CursusCourse cc") | ||||
|     Iterable<Cursus> findDistinctCursuses(); | ||||
| } | ||||
| @ -1,8 +0,0 @@ | ||||
| package ovh.herisson.Clyde.Repositories; | ||||
|  | ||||
| import org.springframework.data.repository.CrudRepository; | ||||
| import ovh.herisson.Clyde.Tables.Cursus; | ||||
|  | ||||
| public interface CursusRepository extends CrudRepository<Cursus,Long> { | ||||
|     Cursus findById(long id); | ||||
| } | ||||
| @ -0,0 +1,68 @@ | ||||
| package ovh.herisson.Clyde.Services; | ||||
|  | ||||
| import org.springframework.stereotype.Service; | ||||
| import ovh.herisson.Clyde.Repositories.CourseRepository; | ||||
| import ovh.herisson.Clyde.Repositories.CurriculumCourseRepository; | ||||
| import ovh.herisson.Clyde.Repositories.CurriculumRepository; | ||||
| import ovh.herisson.Clyde.Tables.Course; | ||||
| import ovh.herisson.Clyde.Tables.Curriculum; | ||||
| import ovh.herisson.Clyde.Tables.CurriculumCourse; | ||||
|  | ||||
| import java.util.ArrayList; | ||||
| import java.util.HashMap; | ||||
| import java.util.Map; | ||||
|  | ||||
| @Service | ||||
| public class CurriculumCourseService { | ||||
|  | ||||
|     private final CurriculumCourseRepository curriculumCourseRepo; | ||||
|  | ||||
|     private final CourseRepository courseRepo; | ||||
|  | ||||
|     private final CurriculumRepository curriculumRepo; | ||||
|  | ||||
|     public CurriculumCourseService(CurriculumCourseRepository curriculumCourseRepository, CourseRepository courseRepo, CurriculumRepository curriculumRepo) { | ||||
|         this.curriculumCourseRepo = curriculumCourseRepository; | ||||
|         this.courseRepo = courseRepo; | ||||
|         this.curriculumRepo = curriculumRepo; | ||||
|     } | ||||
|  | ||||
|     public void save(CurriculumCourse curriculumCourse){ | ||||
|         curriculumCourseRepo.save(curriculumCourse); | ||||
|     } | ||||
|  | ||||
|     public Iterable<CurriculumCourse> findAll(){ | ||||
|         return curriculumCourseRepo.findAll(); | ||||
|     } | ||||
|  | ||||
|  | ||||
|     public Map<String, Object> getDepthCurriculum(Curriculum curriculum){ | ||||
|  | ||||
|         HashMap<String ,Object> toReturn = new HashMap<>(); | ||||
|         ArrayList<Course> courses = new ArrayList<>(); | ||||
|         for (Course c: curriculumCourseRepo.findCoursesByCurriculum(curriculum)){ | ||||
|             courses.add(c); | ||||
|         } | ||||
|         toReturn.put("courses",courses); | ||||
|         toReturn.put("curriculumId", curriculum.getCurriculumId()); | ||||
|         toReturn.put("year", curriculum.getYear()); | ||||
|         toReturn.put("option", curriculum.getOption()); | ||||
|  | ||||
|  | ||||
|         return  toReturn; | ||||
|     } | ||||
|  | ||||
|     public Iterable<Map<String, Object>> getAllDepthCurriculum(){ | ||||
|  | ||||
|         ArrayList<Map<String,Object>> toReturn = new ArrayList<>(); | ||||
|  | ||||
|         for (Curriculum curriculum : curriculumCourseRepo.findDistinctCurriculums()){ | ||||
|             toReturn.add(getDepthCurriculum(curriculum)); | ||||
|         } | ||||
|         return toReturn; | ||||
|     } | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| } | ||||
| @ -0,0 +1,32 @@ | ||||
| package ovh.herisson.Clyde.Services; | ||||
|  | ||||
| import org.springframework.stereotype.Service; | ||||
| import ovh.herisson.Clyde.Repositories.CourseRepository; | ||||
| import ovh.herisson.Clyde.Repositories.CurriculumRepository; | ||||
| import ovh.herisson.Clyde.Tables.Curriculum; | ||||
|  | ||||
| @Service | ||||
| public class CurriculumService { | ||||
|  | ||||
|     private final CurriculumRepository curriculumRepo; | ||||
|  | ||||
|     private final CourseRepository courseRepo; | ||||
|  | ||||
|     public CurriculumService(CurriculumRepository curriculumRepo, CourseRepository courseRepo){ | ||||
|         this.curriculumRepo = curriculumRepo; | ||||
|         this.courseRepo = courseRepo; | ||||
|     } | ||||
|  | ||||
|  | ||||
|     public void save(Curriculum curriculum){ | ||||
|         curriculumRepo.save(curriculum); | ||||
|     } | ||||
|  | ||||
|     public Curriculum findById(long id){ | ||||
|         return curriculumRepo.findById(id); | ||||
|     } | ||||
|  | ||||
|     public Iterable<Curriculum> findAll(){ | ||||
|         return curriculumRepo.findAll(); | ||||
|     } | ||||
| } | ||||
| @ -1,68 +0,0 @@ | ||||
| package ovh.herisson.Clyde.Services; | ||||
|  | ||||
| import org.springframework.stereotype.Service; | ||||
| import ovh.herisson.Clyde.Repositories.CourseRepository; | ||||
| import ovh.herisson.Clyde.Repositories.CursusCourseRepository; | ||||
| import ovh.herisson.Clyde.Repositories.CursusRepository; | ||||
| import ovh.herisson.Clyde.Tables.Course; | ||||
| import ovh.herisson.Clyde.Tables.Cursus; | ||||
| import ovh.herisson.Clyde.Tables.CursusCourse; | ||||
|  | ||||
| import java.util.ArrayList; | ||||
| import java.util.HashMap; | ||||
| import java.util.Map; | ||||
|  | ||||
| @Service | ||||
| public class CursusCourseService { | ||||
|  | ||||
|     private final CursusCourseRepository cursusCourseRepo; | ||||
|  | ||||
|     private final CourseRepository courseRepo; | ||||
|  | ||||
|     private final CursusRepository cursusRepo; | ||||
|  | ||||
|     public CursusCourseService(CursusCourseRepository cursusCourseRepo, CourseRepository courseRepo, CursusRepository cursusRepo) { | ||||
|         this.cursusCourseRepo = cursusCourseRepo; | ||||
|         this.courseRepo = courseRepo; | ||||
|         this.cursusRepo = cursusRepo; | ||||
|     } | ||||
|  | ||||
|     public void save(CursusCourse cursusCourse){ | ||||
|         cursusCourseRepo.save(cursusCourse); | ||||
|     } | ||||
|  | ||||
|     public Iterable<CursusCourse> findAll(){ | ||||
|         return cursusCourseRepo.findAll(); | ||||
|     } | ||||
|  | ||||
|  | ||||
|     public Map<String, Object> getDepthCursus(Cursus cursus){ | ||||
|  | ||||
|         HashMap<String ,Object> toReturn = new HashMap<>(); | ||||
|         ArrayList<Course> courses = new ArrayList<>(); | ||||
|         for (Course c: cursusCourseRepo.findCoursesByCursus(cursus)){ | ||||
|             courses.add(c); | ||||
|         } | ||||
|         toReturn.put("courses",courses); | ||||
|         toReturn.put("cursusId",cursus.getCursusId()); | ||||
|         toReturn.put("year",cursus.getYear()); | ||||
|         toReturn.put("option",cursus.getOption()); | ||||
|  | ||||
|  | ||||
|         return  toReturn; | ||||
|     } | ||||
|  | ||||
|     public Iterable<Map<String, Object>> getAllDepthCursus(){ | ||||
|  | ||||
|         ArrayList<Map<String,Object>> toReturn = new ArrayList<>(); | ||||
|  | ||||
|         for (Cursus cursus : cursusCourseRepo.findDistinctCursuses()){ | ||||
|             toReturn.add(getDepthCursus(cursus)); | ||||
|         } | ||||
|         return toReturn; | ||||
|     } | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| } | ||||
| @ -1,36 +0,0 @@ | ||||
| package ovh.herisson.Clyde.Services; | ||||
|  | ||||
| import org.springframework.stereotype.Service; | ||||
| import ovh.herisson.Clyde.Repositories.CourseRepository; | ||||
| import ovh.herisson.Clyde.Repositories.CursusRepository; | ||||
| import ovh.herisson.Clyde.Tables.Cursus; | ||||
|  | ||||
| import java.util.HashMap; | ||||
| import java.util.Map; | ||||
|  | ||||
| @Service | ||||
| public class CursusService { | ||||
|  | ||||
|  | ||||
|     private final CursusRepository cursusRepo; | ||||
|  | ||||
|     private final CourseRepository courseRepo; | ||||
|  | ||||
|     public CursusService(CursusRepository cursusRepo, CourseRepository courseRepo){ | ||||
|         this.cursusRepo = cursusRepo; | ||||
|         this.courseRepo = courseRepo; | ||||
|     } | ||||
|  | ||||
|  | ||||
|     public void save(Cursus cursus){ | ||||
|         cursusRepo.save(cursus); | ||||
|     } | ||||
|  | ||||
|     public Cursus findById(long id){ | ||||
|         return cursusRepo.findById(id); | ||||
|     } | ||||
|  | ||||
|     public Iterable<Cursus> findAll(){ | ||||
|         return cursusRepo.findAll(); | ||||
|     } | ||||
| } | ||||
| @ -6,21 +6,21 @@ import jakarta.persistence.GenerationType; | ||||
| import jakarta.persistence.Id; | ||||
| 
 | ||||
| @Entity | ||||
| public class Cursus { | ||||
| public class Curriculum { | ||||
|     @Id | ||||
|     @GeneratedValue(strategy = GenerationType.AUTO) | ||||
|     private int cursusId; | ||||
|     private int curriculumId; | ||||
|     private int year; | ||||
|     private String option; | ||||
|     public Cursus(int year, String option){ | ||||
|     public Curriculum(int year, String option){ | ||||
|         this.year = year; | ||||
|         this.option = option; | ||||
|     } | ||||
| 
 | ||||
|     public Cursus() {} | ||||
|     public Curriculum() {} | ||||
| 
 | ||||
|     public int getCursusId(){ | ||||
|         return this.cursusId; | ||||
|     public int getCurriculumId(){ | ||||
|         return this.curriculumId; | ||||
|     } | ||||
| 
 | ||||
|     public int getYear(){ | ||||
| @ -3,25 +3,25 @@ package ovh.herisson.Clyde.Tables; | ||||
| import jakarta.persistence.*; | ||||
| 
 | ||||
| @Entity | ||||
| public class CursusCourse { | ||||
| public class CurriculumCourse { | ||||
|     @Id | ||||
|     @GeneratedValue(strategy = GenerationType.AUTO) | ||||
|     private int id; | ||||
| 
 | ||||
|     @ManyToOne(fetch = FetchType.EAGER) | ||||
|     @JoinColumn(name = "Cursus") | ||||
|     private Cursus cursus; | ||||
|     @JoinColumn(name = "Curriculum") | ||||
|     private Curriculum curriculum; | ||||
| 
 | ||||
|     @ManyToOne(fetch = FetchType.EAGER) | ||||
|     @JoinColumn(name = "Course") | ||||
|     private Course course; | ||||
| 
 | ||||
|     public CursusCourse(Cursus cursus, Course course){ | ||||
|         this.cursus = cursus; | ||||
|     public CurriculumCourse(Curriculum curriculum, Course course){ | ||||
|         this.curriculum = curriculum; | ||||
|         this.course = course; | ||||
|     } | ||||
| 
 | ||||
|     public CursusCourse() {} | ||||
|     public CurriculumCourse() {} | ||||
| 
 | ||||
|     public int getId() { | ||||
|         return id; | ||||
| @ -35,11 +35,11 @@ public class CursusCourse { | ||||
|         this.course = course; | ||||
|     } | ||||
| 
 | ||||
|     public Cursus getCursus() { | ||||
|         return cursus; | ||||
|     public Curriculum getCurriculum() { | ||||
|         return curriculum; | ||||
|     } | ||||
| 
 | ||||
|     public void setCursus(Cursus cursus) { | ||||
|         this.cursus = cursus; | ||||
|     public void setCurriculum(Curriculum curriculum) { | ||||
|         this.curriculum = curriculum; | ||||
|     } | ||||
| } | ||||
| @ -18,8 +18,8 @@ public class InscriptionRequest { | ||||
|     private Date birthDate; | ||||
|  | ||||
|     @ManyToOne | ||||
|     @JoinColumn(name="Cursus") | ||||
|     private Cursus cursus; | ||||
|     @JoinColumn(name="Curriculum") | ||||
|     private Curriculum curriculum; | ||||
|     private RequestState state; | ||||
|     private String profilePicture; | ||||
|  | ||||
| @ -89,12 +89,12 @@ public class InscriptionRequest { | ||||
|         this.birthDate = birthDate; | ||||
|     } | ||||
|  | ||||
|     public Cursus getCursus() { | ||||
|         return cursus; | ||||
|     public Curriculum getCurriculum() { | ||||
|         return curriculum; | ||||
|     } | ||||
|  | ||||
|     public void setCursus(Cursus cursus) { | ||||
|         this.cursus = cursus; | ||||
|     public void setCurriculum(Curriculum curriculum) { | ||||
|         this.curriculum = curriculum; | ||||
|     } | ||||
|  | ||||
|     public RequestState getState() { | ||||
|  | ||||
| @ -13,26 +13,26 @@ public class ReinscriptionRequest { | ||||
|     private User user; | ||||
|  | ||||
|     @ManyToOne | ||||
|     @JoinColumn(name = "Cursus") | ||||
|     private Cursus newCursus; | ||||
|     @JoinColumn(name = "Curriculum") | ||||
|     private Curriculum newCurriculum; | ||||
|     private RequestState state; | ||||
|  | ||||
|     //Permet de différencier les demandes de changement et une réinscription dans le même cursus | ||||
|     //Permet de différencier les demandes de changement et une réinscription dans le même Curriculum | ||||
|     //Pour la réinscription on va le mettre a 0 | ||||
|     private boolean type = false; | ||||
|  | ||||
|     public ReinscriptionRequest(){} | ||||
|  | ||||
|     public ReinscriptionRequest(User user, Cursus newCursus, RequestState state, boolean type){ | ||||
|     public ReinscriptionRequest(User user, Curriculum newCurriculum, RequestState state, boolean type){ | ||||
|         this.user = user; | ||||
|         this.newCursus = newCursus; | ||||
|         this.newCurriculum = newCurriculum; | ||||
|         this.state = state; | ||||
|         this.type = type; | ||||
|     } | ||||
|  | ||||
|     public ReinscriptionRequest(User user, Cursus newCursus, RequestState state){ | ||||
|     public ReinscriptionRequest(User user, Curriculum newCurriculum, RequestState state){ | ||||
|         this.user = user; | ||||
|         this.newCursus = newCursus; | ||||
|         this.newCurriculum = newCurriculum; | ||||
|         this.state = state; | ||||
|     } | ||||
|  | ||||
| @ -48,12 +48,12 @@ public class ReinscriptionRequest { | ||||
|         this.user = user; | ||||
|     } | ||||
|  | ||||
|     public Cursus getNewCursus() { | ||||
|         return newCursus; | ||||
|     public Curriculum getNewCurriculum() { | ||||
|         return newCurriculum; | ||||
|     } | ||||
|  | ||||
|     public void setNewCursus(Cursus newCursus) { | ||||
|         this.newCursus = newCursus; | ||||
|     public void setNewCurriculum(Curriculum newCurriculum) { | ||||
|         this.newCurriculum = newCurriculum; | ||||
|     } | ||||
|  | ||||
|     public RequestState getState() { | ||||
|  | ||||
| @ -3,26 +3,26 @@ package ovh.herisson.Clyde.Tables; | ||||
| import jakarta.persistence.*; | ||||
| 
 | ||||
| @Entity | ||||
| public class UserCursus { | ||||
| public class UserCurriculum { | ||||
|     @Id | ||||
|     @GeneratedValue(strategy = GenerationType.AUTO) | ||||
|     private int id; | ||||
| 
 | ||||
|     //Un étudiant peut avoir plusieurs cursus | ||||
|     //Un étudiant peut avoir plusieurs curriculums | ||||
|     @ManyToOne(fetch = FetchType.EAGER) | ||||
|     @JoinColumn(name = "Users") | ||||
|     private User user; | ||||
| 
 | ||||
|     @OneToOne(fetch = FetchType.EAGER) | ||||
|     @JoinColumn(name = "Cursus") | ||||
|     private Cursus cursus; | ||||
|     @JoinColumn(name = "Curriculum") | ||||
|     private Curriculum curriculum; | ||||
| 
 | ||||
|     public UserCursus(User user, Cursus cursus){ | ||||
|     public UserCurriculum(User user, Curriculum curriculum){ | ||||
|         this.user = user; | ||||
|         this.cursus = cursus; | ||||
|         this.curriculum = curriculum; | ||||
|     } | ||||
| 
 | ||||
|     public UserCursus() {} | ||||
|     public UserCurriculum() {} | ||||
| 
 | ||||
|     public int getId() { | ||||
|         return id; | ||||
| @ -36,11 +36,11 @@ public class UserCursus { | ||||
|         this.user = user; | ||||
|     } | ||||
| 
 | ||||
|     public Cursus getCursus() { | ||||
|         return cursus; | ||||
|     public Curriculum getCurriculum() { | ||||
|         return curriculum; | ||||
|     } | ||||
| 
 | ||||
|     public void setCursus(Cursus cursus) { | ||||
|         this.cursus = cursus; | ||||
|     public void setCurriculum(Curriculum curriculum) { | ||||
|         this.curriculum = curriculum; | ||||
|     } | ||||
| } | ||||
| @ -16,7 +16,7 @@ | ||||
|   const email=ref("") | ||||
|   const address=ref("") | ||||
|   const country=ref("") | ||||
|   const cursus=ref("") | ||||
|   const curriculum=ref("") | ||||
|   | ||||
|   const imageSaved = ref(false) | ||||
|   const ppData = ref(false) | ||||
| @ -49,7 +49,7 @@ | ||||
|         </div> | ||||
|  | ||||
|         <div v-else> | ||||
|           <form @submit.prevent="register(firstname, surname, birthday, password, mail, address, country, cursus)" class="form"> | ||||
|           <form @submit.prevent="register(firstname, surname, birthday, password, mail, address, country, curriculum)" class="form"> | ||||
|             <h1 style="color:rgb(239,60,168); font-family: sans-serif; text-align:center;"> | ||||
|               {{i18n("login.guest.welcome")}} | ||||
|             </h1> | ||||
| @ -103,7 +103,7 @@ | ||||
|               </form> | ||||
|               <div class="inputBox"> | ||||
|                 <p>{{i18n("curriculum").toUpperCase()}}</p>  | ||||
|                   <select v-model="cursus"> | ||||
|                   <select v-model="curriculum"> | ||||
|                     <option value="Chemistry">Chemistry</option> | ||||
|                     <option value="Psycho">Psychology</option> | ||||
|                     <option value="IT">IT</option> | ||||
|  | ||||
| @ -4,7 +4,7 @@ | ||||
|   import { getCourses } from "@/rest/courses.js" | ||||
|   import { getTeachers } from "@/rest/Users.js" | ||||
|  | ||||
|   const cursus = await getCourses() | ||||
|   const curriculum = await getCourses() | ||||
|  | ||||
|   const profList = getTeachers() | ||||
|  | ||||
| @ -31,8 +31,8 @@ | ||||
|   let toAdd = Object.assign({}, pattern); | ||||
|  | ||||
|   function addToCourse (){ | ||||
|   if (cursus.length>0){ | ||||
|     toAdd.id=(cursus[cursus.length-1].id)-1;} | ||||
|   if (curriculum.length>0){ | ||||
|     toAdd.id=(curriculum[curriculum.length-1].id)-1;} | ||||
|     else{ | ||||
|     toAdd.id=0; | ||||
|     } | ||||
| @ -43,7 +43,7 @@ | ||||
|       } | ||||
|     } | ||||
|       if (!isnull){ | ||||
|       cursus.push(toAdd); | ||||
|       curriculum.push(toAdd); | ||||
|       } | ||||
|       toAdd= Object.assign({},pattern); | ||||
|     }  | ||||
| @ -56,7 +56,7 @@ | ||||
|   console.log("ok"); | ||||
|   console.log(toRemove); | ||||
|   let rem=-1; | ||||
|   for(const [key, value] of Object.entries(cursus)){ | ||||
|   for(const [key, value] of Object.entries(curriculum)){ | ||||
|     console.log(key); | ||||
|     console.log(value) | ||||
|     if(value.name === toRemove){ | ||||
| @ -66,8 +66,8 @@ | ||||
|     } | ||||
|     console.log(rem) | ||||
|   if (rem > -1){ | ||||
|     cursus.splice(rem, 1);} | ||||
|   console.log(cursus); | ||||
|     curriculum.splice(rem, 1);} | ||||
|   console.log(curriculum); | ||||
|   } | ||||
|  | ||||
| </script> | ||||
| @ -110,7 +110,7 @@ | ||||
|         <div style="margin-bottom:20px;"> | ||||
|           {{i18n("courses.toDelete")}} : | ||||
|          <select style="max-width:200px;" class="teacher" v-model="toRemove"> | ||||
|           <option v-for="item in cursus">{{item.name}}</option> | ||||
|           <option v-for="item in curriculum">{{item.name}}</option> | ||||
|            | ||||
|         </select> | ||||
|         </div> | ||||
| @ -127,7 +127,7 @@ | ||||
|       </form> | ||||
|     </div> | ||||
|  | ||||
|     <div v-if="!createMod && !deleteMod" v-for="item in cursus" :key="item.name"> | ||||
|     <div v-if="!createMod && !deleteMod" v-for="item in curriculum" :key="item.name"> | ||||
|       <div style ="padding:15px 15px 15px 15px;"> | ||||
|       <button  v-if="editElementID !== item.name"  @click="editElementID = item.name"> | ||||
|         {{i18n("courses.modify")}} | ||||
|  | ||||
| @ -12,7 +12,7 @@ | ||||
|   role:"student", | ||||
|   address: "Radiator Springs", | ||||
|   email:"ClydeGhost@gmail.com", | ||||
|   cursus:[ | ||||
|   curriculum:[ | ||||
|   { | ||||
|   "id": 12, | ||||
|   "name": "Math pour l'info", | ||||
| @ -132,7 +132,7 @@ const toModify = Object.assign({}, user); | ||||
|             {{i18n("profile.course.list")}} | ||||
|           </div> | ||||
|         <div  class="listElement " | ||||
|           v-for="item in user.cursus"> | ||||
|           v-for="item in user.curriculum"> | ||||
|           <div class=" containerElement"> | ||||
|             <div class="name"> {{item.name}} </div> | ||||
|             <div class="teacher">{{item.teacher}}</div>  | ||||
|  | ||||
| @ -8,7 +8,7 @@ | ||||
|   address: String, | ||||
|   country: String, | ||||
|   birthDate: String, | ||||
|   cursus:String, | ||||
|   curriculum:String, | ||||
|   degree:String,}); | ||||
| </script> | ||||
|  | ||||
|  | ||||
| @ -24,7 +24,7 @@ export async function createRegister(){ | ||||
|  * - country | ||||
|  * - birthdate | ||||
|  * - email | ||||
|  * - cursus | ||||
|  * - curriculum | ||||
|  * - degree | ||||
|  */ | ||||
| export async function getRegisters(id){ | ||||
|  | ||||
| @ -14,10 +14,10 @@ export async function login(user, pass, exp){ | ||||
|  * @param mail | ||||
|  * @param address | ||||
|  * @param country | ||||
|  * @param cursus | ||||
|  * @param curriculum  | ||||
|  * @param imageId	id of the image in database returned when uploaded | ||||
|  */ | ||||
| export async function register(firstname, lastname, birthDate, password, email, address, country, cursus, imageId){ | ||||
| export async function register(firstname, lastname, birthDate, password, email, address, country, curriculum, imageId){ | ||||
| 	return restPost("/register", { | ||||
| 		firstname: firstname, | ||||
| 		lastname: lastname, | ||||
| @ -26,7 +26,7 @@ export async function register(firstname, lastname, birthDate, password, email, | ||||
| 		email: email, | ||||
| 		address: address, | ||||
| 		country: country, | ||||
| 		cursus: cursus | ||||
| 		curriculum: curriculum | ||||
| 	}); | ||||
| } | ||||
|  | ||||
|  | ||||
							
								
								
									
										41
									
								
								frontend/src/rest/curriculum.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										41
									
								
								frontend/src/rest/curriculum.js
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,41 @@ | ||||
| /** | ||||
|  * curriculum API | ||||
|  */ | ||||
|  | ||||
| import { restGet, restPostn, restDelete, restPatch } from './restConsumer.js' | ||||
|  | ||||
| /** | ||||
|  * Create a new curriculum (bundle of courses) | ||||
|  * @param courses	list of courses | ||||
|  */ | ||||
| export async function createcurriculum(courses){ | ||||
| 	return restPost("/curriculum", {courses: courses} ); | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * Delete the specified curriculum | ||||
|  */ | ||||
| export async function deletecurriculum(id){ | ||||
| 	return restDelete("/curriculum/" + id); | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * Get informations on a particular curriculum | ||||
|  * | ||||
|  * @param id	identification of the curriculum | ||||
|  * | ||||
|  * @return list of courses  | ||||
|  */ | ||||
| export async function getcurriculum(id){ | ||||
| 	return restGet("/curriculum/" + id); | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * Modify the courses of a curriculum | ||||
|  * | ||||
|  * @param id		the id of the curriculum | ||||
|  * @param courses	list of new courses  | ||||
|  */ | ||||
| export async function altercurriculum(id, courses){ | ||||
| 	return restPatch("/curriculum/" + id, courses); | ||||
| } | ||||
| @ -1,41 +0,0 @@ | ||||
| /** | ||||
|  * cursus API | ||||
|  */ | ||||
|  | ||||
| import { restGet, restPostn, restDelete, restPatch } from './restConsumer.js' | ||||
|  | ||||
| /** | ||||
|  * Create a new cursus (bundle of courses) | ||||
|  * @param courses	list of courses | ||||
|  */ | ||||
| export async function createCursus(courses){ | ||||
| 	return restPost("/cursus", {courses: courses} ); | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * Delete the specified cursus | ||||
|  */ | ||||
| export async function deleteCursus(id){ | ||||
| 	return restDelete("/cursus/" + id); | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * Get informations on a particular cursus | ||||
|  * | ||||
|  * @param id	identification of the cursus | ||||
|  * | ||||
|  * @return list of courses  | ||||
|  */ | ||||
| export async function getCursus(id){ | ||||
| 	return restGet("/cursus/" + id); | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * Modify the courses of a cursus | ||||
|  * | ||||
|  * @param id		the id of the cursus | ||||
|  * @param courses	list of new courses  | ||||
|  */ | ||||
| export async function alterCursus(id, courses){ | ||||
| 	return restPatch("/cursus/" + id, courses); | ||||
| } | ||||
		Reference in New Issue
	
	Block a user