Add course to a curriculum when created
This commit is contained in:
		@ -6,10 +6,7 @@ import org.springframework.web.bind.annotation.*;
 | 
			
		||||
import ovh.herisson.Clyde.Repositories.CurriculumCourseRepository;
 | 
			
		||||
import ovh.herisson.Clyde.Responses.UnauthorizedResponse;
 | 
			
		||||
import ovh.herisson.Clyde.Services.*;
 | 
			
		||||
import ovh.herisson.Clyde.Tables.Course;
 | 
			
		||||
import ovh.herisson.Clyde.Tables.Role;
 | 
			
		||||
import ovh.herisson.Clyde.Tables.User;
 | 
			
		||||
import ovh.herisson.Clyde.Tables.UserCurriculum;
 | 
			
		||||
import ovh.herisson.Clyde.Tables.*;
 | 
			
		||||
 | 
			
		||||
import java.util.ArrayList;
 | 
			
		||||
import java.util.HashMap;
 | 
			
		||||
@ -28,15 +25,18 @@ public class CourseController {
 | 
			
		||||
 | 
			
		||||
    private final UserService userService;
 | 
			
		||||
 | 
			
		||||
    private final CurriculumService curriculumService;
 | 
			
		||||
 | 
			
		||||
    private final UserCurriculumService userCurriculumService;
 | 
			
		||||
 | 
			
		||||
    private final CurriculumCourseRepository curriculumCourseRepository;
 | 
			
		||||
    private final CurriculumCourseService curriculumCourseService;
 | 
			
		||||
    public CourseController(CourseService courseServ, TeacherCourseService teacherCourseServ, AuthenticatorService authServ, UserService userService, UserCurriculumService userCurriculumService, CurriculumCourseRepository curriculumCourseRepository, CurriculumCourseService curriculumCourseService) {
 | 
			
		||||
    public CourseController(CourseService courseServ, TeacherCourseService teacherCourseServ, AuthenticatorService authServ, UserService userService, CurriculumService curriculumService, UserCurriculumService userCurriculumService, CurriculumCourseRepository curriculumCourseRepository, CurriculumCourseService curriculumCourseService) {
 | 
			
		||||
        this.courseServ = courseServ;
 | 
			
		||||
        this.teacherCourseServ = teacherCourseServ;
 | 
			
		||||
        this.authServ = authServ;
 | 
			
		||||
        this.userService = userService;
 | 
			
		||||
        this.curriculumService = curriculumService;
 | 
			
		||||
        this.userCurriculumService = userCurriculumService;
 | 
			
		||||
        this.curriculumCourseRepository = curriculumCourseRepository;
 | 
			
		||||
        this.curriculumCourseService = curriculumCourseService;
 | 
			
		||||
@ -82,16 +82,18 @@ public class CourseController {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    @PostMapping("/course")
 | 
			
		||||
    @PostMapping("/course/curriculum/{id}")
 | 
			
		||||
    public ResponseEntity<Map<String ,Object>> postCourse(@RequestHeader("Authorization") String token,
 | 
			
		||||
                                             @RequestBody Course course)
 | 
			
		||||
                                             @RequestBody Course course,@PathVariable long id)
 | 
			
		||||
    {
 | 
			
		||||
        if (authServ.isNotIn(new Role[]{Role.Secretary,Role.Admin},token))
 | 
			
		||||
            return new UnauthorizedResponse<>(null);
 | 
			
		||||
        Course createdCourse = courseServ.save(course);
 | 
			
		||||
        if (createdCourse == null)
 | 
			
		||||
        Curriculum curriculum = curriculumService.findById(id);
 | 
			
		||||
        if (createdCourse == null || curriculum == null)
 | 
			
		||||
            return new ResponseEntity<>(null,HttpStatus.BAD_REQUEST);
 | 
			
		||||
 | 
			
		||||
        CurriculumCourse curriculumCourse = new CurriculumCourse(curriculum,course);
 | 
			
		||||
        curriculumCourseService.save(curriculumCourse);
 | 
			
		||||
        return new ResponseEntity<>(ProtectionService.courseWithoutPassword(createdCourse), HttpStatus.CREATED);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -1,5 +1,7 @@
 | 
			
		||||
package ovh.herisson.Clyde.Repositories;
 | 
			
		||||
 | 
			
		||||
import jakarta.transaction.Transactional;
 | 
			
		||||
import org.springframework.data.jpa.repository.Modifying;
 | 
			
		||||
import org.springframework.data.jpa.repository.Query;
 | 
			
		||||
import org.springframework.data.repository.CrudRepository;
 | 
			
		||||
import ovh.herisson.Clyde.Tables.Course;
 | 
			
		||||
@ -14,4 +16,10 @@ public interface CurriculumCourseRepository extends CrudRepository<CurriculumCou
 | 
			
		||||
 | 
			
		||||
    @Query("select distinct cc.curriculum from  CurriculumCourse cc")
 | 
			
		||||
    Iterable<Curriculum> findDistinctCurriculums();
 | 
			
		||||
 | 
			
		||||
    @Modifying
 | 
			
		||||
    @Transactional
 | 
			
		||||
    @Query("delete from CurriculumCourse cc where cc.course =?1")
 | 
			
		||||
    void delete(Course course);
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user