1
0
forked from PGL/Clyde

Add course to Curriculum

This commit is contained in:
2024-04-21 21:50:38 +02:00
parent 05ed28626a
commit 69be9681ff
7 changed files with 93 additions and 15 deletions

View File

@ -19,6 +19,7 @@ public class CurriculumController {
private final CurriculumService curriculumServ;
private final CourseService courseServ;
private final AuthenticatorService authServ;
private final UserCurriculumService userCurriculumServ;
@ -27,8 +28,9 @@ public class CurriculumController {
private final UserService userServ;
private final ExternalCurriculumRepository ecr;
public CurriculumController(CurriculumService curriculumServ, AuthenticatorService authServ, UserCurriculumService userCurriculumServ, CurriculumCourseService curriculumCourseServ, InscriptionRepository ir, UserService userServ, ExternalCurriculumRepository ecr){
public CurriculumController(CurriculumService curriculumServ, CourseService courseServ, AuthenticatorService authServ, UserCurriculumService userCurriculumServ, CurriculumCourseService curriculumCourseServ, InscriptionRepository ir, UserService userServ, ExternalCurriculumRepository ecr){
this.curriculumServ = curriculumServ;
this.courseServ = courseServ;
this.authServ = authServ;
this.userCurriculumServ = userCurriculumServ;
this.curriculumCourseServ = curriculumCourseServ;
@ -60,6 +62,18 @@ public class CurriculumController {
return new ResponseEntity<>(curriculumCourseServ.getDepthCurriculum(curriculum),HttpStatus.OK);
}
@GetMapping("/course/curriculum/{id}")
public ResponseEntity<Iterable<Curriculum>> getCurriculumsByCourse(@RequestHeader("Authorization") String token, @PathVariable long id){
if(authServ.isNotIn(new Role[]{Role.Admin, Role.Secretary},token))
return new UnauthorizedResponse<>(null);
Course course = courseServ.findById(id);
if(course == null)
return new ResponseEntity<>(HttpStatus.BAD_REQUEST);
Iterable<Curriculum> curriculum = curriculumCourseServ.findCurriculumByCourses(course);
return new ResponseEntity<>(curriculum, HttpStatus.OK);
}
//Return the list of all curicullums of an user
@GetMapping("/onescurriculum/{userId}")
@ -91,17 +105,20 @@ public class CurriculumController {
}
@PostMapping("/curriculum/{id}")
public ResponseEntity<String> postCoursesToCurriculum(@RequestHeader("Authorization") String token,
@RequestBody Iterable<Long> coursesIds,
@PathVariable long id)
{
public ResponseEntity<String> postCourseToCurriculum(@RequestHeader("Authorization") String token,
@RequestBody long coursesId,
@PathVariable long id){
if (authServ.isNotIn(new Role[]{Role.Admin,Role.Secretary},token))
return new UnauthorizedResponse<>(null);
if (!curriculumCourseServ.saveAll(coursesIds, curriculumServ.findById(id)))
CurriculumCourse curriculumCourse = new CurriculumCourse(curriculumServ.findById(id), courseServ.findById(coursesId));
if(curriculumCourse.getCourse() == null || curriculumCourse.getCurriculum() == null)
return new ResponseEntity<>(HttpStatus.BAD_REQUEST);
curriculumCourseServ.save(curriculumCourse);
return new ResponseEntity<>(HttpStatus.OK);
}

View File

@ -13,6 +13,8 @@ public interface CurriculumCourseRepository extends CrudRepository<CurriculumCou
@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 where cc.course = ?1")
Iterable<Curriculum> findCurriculumByCourses(Course course);
@Query("select distinct cc.curriculum from CurriculumCourse cc")
Iterable<Curriculum> findDistinctCurriculums();

View File

@ -51,6 +51,10 @@ public class CurriculumCourseService {
return toReturn;
}
public Iterable<Curriculum> findCurriculumByCourses(Course course){
return curriculumCourseRepo.findCurriculumByCourses(course);
}
public Iterable<Map<String, Object>> getAllDepthCurriculum(){
ArrayList<Map<String,Object>> toReturn = new ArrayList<>();