Request and changes
This commit is contained in:
		@ -61,6 +61,8 @@ public class ApplicationsController {
 | 
			
		||||
            authorizedApps.add(Applications.Rdv);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        if(!authServ.isNotIn(new Role[]{Role.Teacher,Role.Admin},token))
 | 
			
		||||
            authorizedApps.add(Applications.ManageOwnedLessons);
 | 
			
		||||
        //if Teacher or Secretary or Admin add ManageCourses App
 | 
			
		||||
        if (!authServ.isNotIn(new Role[]{Role.Teacher,Role.Secretary,Role.Admin},token))
 | 
			
		||||
            authorizedApps.add(Applications.ManageCourses);
 | 
			
		||||
@ -71,7 +73,8 @@ public class ApplicationsController {
 | 
			
		||||
 | 
			
		||||
        if (!authServ.isNotIn(new Role[]{Role.Secretary,Role.Admin},token)){ 
 | 
			
		||||
          authorizedApps.add(Applications.UsersList);
 | 
			
		||||
          authorizedApps.add(Applications.ManageSchedules);}
 | 
			
		||||
          authorizedApps.add(Applications.ManageSchedules);
 | 
			
		||||
          authorizedApps.add(Applications.LessonRequests);}
 | 
			
		||||
        return authorizedApps;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -7,6 +7,7 @@ import ovh.herisson.Clyde.Responses.UnauthorizedResponse;
 | 
			
		||||
import ovh.herisson.Clyde.Services.AuthenticatorService;
 | 
			
		||||
import ovh.herisson.Clyde.Services.LessonService;
 | 
			
		||||
import ovh.herisson.Clyde.Services.ProtectionService;
 | 
			
		||||
import ovh.herisson.Clyde.Services.ScheduleLessonService;
 | 
			
		||||
import ovh.herisson.Clyde.Tables.Lesson;
 | 
			
		||||
import ovh.herisson.Clyde.Tables.Role;
 | 
			
		||||
 | 
			
		||||
@ -18,10 +19,12 @@ import java.util.Map;
 | 
			
		||||
public class LessonController {
 | 
			
		||||
    private final LessonService lessonServ;
 | 
			
		||||
 | 
			
		||||
    private final ScheduleLessonService scheduleLessonServ;
 | 
			
		||||
    private final AuthenticatorService authServ;
 | 
			
		||||
 | 
			
		||||
    public LessonController(LessonService lessonServ, AuthenticatorService authServ) {
 | 
			
		||||
    public LessonController(LessonService lessonServ, ScheduleLessonService scheduleLessonService, AuthenticatorService authServ) {
 | 
			
		||||
        this.lessonServ = lessonServ;
 | 
			
		||||
        this.scheduleLessonServ = scheduleLessonService;
 | 
			
		||||
        this.authServ = authServ;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@ -60,6 +63,8 @@ public class LessonController {
 | 
			
		||||
 | 
			
		||||
          Lesson lesson = lessonServ.createLesson(lessonInfos);
 | 
			
		||||
          Lesson createdLesson = lessonServ.save(lesson);
 | 
			
		||||
          scheduleLessonServ.saveToAllSchedule(lesson);
 | 
			
		||||
 | 
			
		||||
        if(createdLesson==null)
 | 
			
		||||
            return new ResponseEntity<>(null,HttpStatus.BAD_REQUEST);
 | 
			
		||||
        return new ResponseEntity<>(ProtectionService.lessonWithoutPassword(createdLesson), HttpStatus.OK);
 | 
			
		||||
 | 
			
		||||
@ -0,0 +1,125 @@
 | 
			
		||||
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.LessonRequestService;
 | 
			
		||||
import ovh.herisson.Clyde.Services.LessonService;
 | 
			
		||||
import ovh.herisson.Clyde.Services.ProtectionService;
 | 
			
		||||
import ovh.herisson.Clyde.Tables.LessonChangesRequest;
 | 
			
		||||
import ovh.herisson.Clyde.Tables.RequestState;
 | 
			
		||||
import ovh.herisson.Clyde.Tables.Role;
 | 
			
		||||
import ovh.herisson.Clyde.Tables.User;
 | 
			
		||||
 | 
			
		||||
import java.util.Map;
 | 
			
		||||
 | 
			
		||||
@RestController
 | 
			
		||||
@CrossOrigin(originPatterns = "*", allowCredentials = "true")
 | 
			
		||||
public class LessonRequestsController {
 | 
			
		||||
    private final LessonRequestService lessonRequestServ;
 | 
			
		||||
    private final AuthenticatorService authServ;
 | 
			
		||||
 | 
			
		||||
    private final LessonService lessonServ;
 | 
			
		||||
    public LessonRequestsController(LessonRequestService lessonRequestServer, AuthenticatorService authServ, LessonService lessonServ) {
 | 
			
		||||
        this.lessonRequestServ = lessonRequestServer;
 | 
			
		||||
        this.authServ = authServ;
 | 
			
		||||
        this.lessonServ = lessonServ;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @GetMapping("/requests/lessonRequest/{id}")
 | 
			
		||||
    public ResponseEntity<Map<String,Object>> getById(@RequestHeader("Authorization") String token, @PathVariable long id){
 | 
			
		||||
        if (authServ.isNotIn(new Role[]{Role.Admin,Role.Secretary},token))
 | 
			
		||||
            return new UnauthorizedResponse<>(null);
 | 
			
		||||
 | 
			
		||||
        LessonChangesRequest lessonRequest= lessonRequestServ.findById(id);
 | 
			
		||||
 | 
			
		||||
        return new ResponseEntity<>(ProtectionService.lessonRequestWithoutPassword(lessonRequest), HttpStatus.OK);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @GetMapping("/requests/lessonRequests/owned")
 | 
			
		||||
    public ResponseEntity<Iterable<Map<String, Object>>> getOwnedRequests(@RequestHeader("Authorization") String token){
 | 
			
		||||
        if(authServ.isNotIn(new Role[]{Role.Admin,Role.Teacher},token))
 | 
			
		||||
            return new UnauthorizedResponse<>(null);
 | 
			
		||||
        User user = authServ.getUserFromToken(token);
 | 
			
		||||
        Iterable<LessonChangesRequest> lessonChangesRequests = lessonRequestServ.findOwnRequests(user);
 | 
			
		||||
        return new ResponseEntity<>(ProtectionService.lessonRequestsWithoutPassword(lessonChangesRequests),HttpStatus.OK);
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @GetMapping("/requests/lessonRequests")
 | 
			
		||||
    public ResponseEntity<Iterable<Map<String,Object>>> getAllRequests(@RequestHeader("Authorization") String token){
 | 
			
		||||
        if (authServ.isNotIn(new Role[]{Role.Admin,Role.Secretary},token))
 | 
			
		||||
            return new UnauthorizedResponse<>(null);
 | 
			
		||||
 | 
			
		||||
        Iterable<LessonChangesRequest> lessonRequests= lessonRequestServ.getAll();
 | 
			
		||||
 | 
			
		||||
        return new ResponseEntity<>(ProtectionService.lessonRequestsWithoutPassword(lessonRequests), HttpStatus.OK);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @PostMapping("/requests/lessonRequest")
 | 
			
		||||
    public ResponseEntity<Map<String, Object>> makeRequest(@RequestBody LessonChangesRequest lessonRequest){
 | 
			
		||||
        System.out.println(lessonRequest.getLesson());
 | 
			
		||||
        System.out.println(lessonRequest.getLessonEnd());
 | 
			
		||||
        LessonChangesRequest lessonChangesRequest = lessonRequestServ.save(lessonRequest);
 | 
			
		||||
        return new ResponseEntity<>(ProtectionService.lessonRequestWithoutPassword(lessonChangesRequest),HttpStatus.OK);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @PatchMapping("/requests/lessonRequest/{id}")
 | 
			
		||||
    public ResponseEntity<LessonChangesRequest> changeRequestState(@PathVariable long id,
 | 
			
		||||
                                                                   @RequestHeader("Authorization") String token,
 | 
			
		||||
                                                                   @RequestBody Map<String , Object> infos){
 | 
			
		||||
        if(authServ.isNotIn(new Role[]{Role.Secretary,Role.Admin},token))
 | 
			
		||||
            return new UnauthorizedResponse<>(null);
 | 
			
		||||
 | 
			
		||||
        LessonChangesRequest lessonRequest = lessonRequestServ.findById(id);
 | 
			
		||||
            String local = "";
 | 
			
		||||
            RequestState state = null;
 | 
			
		||||
            for (Map.Entry<String, Object> entry : infos.entrySet()) {
 | 
			
		||||
                switch (entry.getKey()) {
 | 
			
		||||
                    case "local":
 | 
			
		||||
                        local = (String) entry.getValue();
 | 
			
		||||
                        break;
 | 
			
		||||
                    case "state":
 | 
			
		||||
                        state = RequestState.valueOf((String)entry.getValue());
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            if (state == null)
 | 
			
		||||
                return new ResponseEntity<>(HttpStatus.BAD_REQUEST);
 | 
			
		||||
 | 
			
		||||
        if(lessonRequest.getRequestType() == 0 ) {
 | 
			
		||||
            if (!lessonRequestServ.modifyCreateRequestState(lessonRequest, state, local))
 | 
			
		||||
                return new ResponseEntity<>(HttpStatus.BAD_REQUEST);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        else if(lessonRequest.getRequestType() == 1){
 | 
			
		||||
            infos.put("lessonStart", lessonRequest.getLessonStart());
 | 
			
		||||
            infos.put("lessonEnd", lessonRequest.getLessonEnd());
 | 
			
		||||
            infos.put("lessonType",lessonRequest.getLessonType());
 | 
			
		||||
            if(!lessonRequestServ.modifyChangeRequestState(infos,lessonRequest.getLesson(),state))
 | 
			
		||||
                return new ResponseEntity<>(HttpStatus.BAD_REQUEST);
 | 
			
		||||
            lessonRequest.setState(state);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        else{
 | 
			
		||||
            lessonRequestServ.modifyDeleleRequest(lessonRequest, state);
 | 
			
		||||
        }
 | 
			
		||||
        lessonRequestServ.save(lessonRequest);
 | 
			
		||||
        return new ResponseEntity<>(HttpStatus.OK);
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    @DeleteMapping("/requests/lessonRequest/{id}")
 | 
			
		||||
    public ResponseEntity<String> deleteRequest(@RequestHeader("Authorization") String token, @PathVariable long id){
 | 
			
		||||
        if(authServ.isNotIn(new Role[]{Role.Admin,Role.Secretary,Role.Teacher},token))
 | 
			
		||||
            return new UnauthorizedResponse<>(null);
 | 
			
		||||
        LessonChangesRequest lessonChangesRequest = lessonRequestServ.findById(id);
 | 
			
		||||
        if (lessonChangesRequest == null)
 | 
			
		||||
            return new ResponseEntity<>(HttpStatus.BAD_REQUEST);
 | 
			
		||||
        lessonRequestServ.delete(lessonChangesRequest);
 | 
			
		||||
        return new ResponseEntity<>(HttpStatus.OK);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@ -29,10 +29,11 @@ public class MockController {
 | 
			
		||||
    public final ScheduleService scheduleService;
 | 
			
		||||
    public final ScheduleLessonService scheduleLessonService;
 | 
			
		||||
 | 
			
		||||
    public final LessonRequestService lessonRequestService;
 | 
			
		||||
    ArrayList<User> mockUsers;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    public MockController(UserRepository userRepo, TokenRepository tokenRepo, TokenService tokenService, CurriculumCourseService CurriculumCourseService, CurriculumService curriculumService, CourseService courseService, InscriptionService inscriptionService, LessonService lessonService, ScheduleService scheduleService, ScheduleLessonService scheduleLessonService){
 | 
			
		||||
    public MockController(UserRepository userRepo, TokenRepository tokenRepo, TokenService tokenService, CurriculumCourseService CurriculumCourseService, CurriculumService curriculumService, CourseService courseService, InscriptionService inscriptionService, LessonService lessonService, ScheduleService scheduleService, ScheduleLessonService scheduleLessonService, LessonRequestService lessonRequestService){
 | 
			
		||||
        this.tokenRepo = tokenRepo;
 | 
			
		||||
        this.userRepo = userRepo;
 | 
			
		||||
        this.tokenService = tokenService;
 | 
			
		||||
@ -43,6 +44,7 @@ public class MockController {
 | 
			
		||||
        this.lessonService = lessonService;
 | 
			
		||||
        this.scheduleService = scheduleService;
 | 
			
		||||
        this.scheduleLessonService = scheduleLessonService;
 | 
			
		||||
        this.lessonRequestService = lessonRequestService;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /** Saves an example of each user type by :
 | 
			
		||||
@ -113,10 +115,16 @@ public class MockController {
 | 
			
		||||
        Lesson lesson_1_progra1 = new Lesson(progra1, "Mon Apr 02 2024 13:30", "Mon Apr 02 2024 15:30","rgb(0,50,100)","A0B2","TP");
 | 
			
		||||
        Lesson lesson_0_commun = new Lesson(commun, "Mon Apr 01 2024 10:30", "Mon Apr 01 2024 12:30","rgb(0,50,100)","A0B2","Course");
 | 
			
		||||
 | 
			
		||||
        LessonChangesRequest request1 = new LessonChangesRequest(joke,RequestState.Pending,null,null,null,null,2,null,1);
 | 
			
		||||
        LessonChangesRequest request2 = new LessonChangesRequest(joke,RequestState.Pending,"Fri Apr 19 2024 10:30 ","Fri Apr 19 2024 12:30 ",null,null,1,null,2);
 | 
			
		||||
        LessonChangesRequest request3 = new LessonChangesRequest(joke,RequestState.Pending,"Fri Apr 19 2024 13:30 ","Fri Apr 19 2024 15:30 ","Course",progra1,0,"rgb(27,49,100)",4);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        Schedule infoBab1Schedule = new Schedule(infoBab1);
 | 
			
		||||
        Schedule chemistryBab1Schedule = new Schedule(chemistryBab1);
 | 
			
		||||
        Schedule psychoBab1Schedule = new Schedule(psychologyBab1);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        scheduleService.save(infoBab1Schedule);
 | 
			
		||||
        scheduleService.save(chemistryBab1Schedule);
 | 
			
		||||
        scheduleService.save(psychoBab1Schedule);
 | 
			
		||||
@ -137,6 +145,10 @@ public class MockController {
 | 
			
		||||
        scheduleLessonService.save(new ScheduleLesson(psychoBab1Schedule,lesson_0_psycho1));
 | 
			
		||||
        scheduleLessonService.save(new ScheduleLesson(psychoBab1Schedule,lesson_0_commun));
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        lessonRequestService.save(request1);
 | 
			
		||||
        lessonRequestService.save(request2);
 | 
			
		||||
        lessonRequestService.save(request3);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -0,0 +1,14 @@
 | 
			
		||||
package ovh.herisson.Clyde.Repositories;
 | 
			
		||||
 | 
			
		||||
import org.springframework.data.jpa.repository.Query;
 | 
			
		||||
import org.springframework.data.repository.CrudRepository;
 | 
			
		||||
import ovh.herisson.Clyde.Tables.LessonChangesRequest;
 | 
			
		||||
import ovh.herisson.Clyde.Tables.User;
 | 
			
		||||
 | 
			
		||||
public interface LessonChangesRequestRepository extends CrudRepository<LessonChangesRequest, Long> {
 | 
			
		||||
    LessonChangesRequest findById(long id);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    @Query("select lr from LessonChangesRequest lr where lr.user = ?1")
 | 
			
		||||
    Iterable<LessonChangesRequest> findOwnRequests(User user);
 | 
			
		||||
}
 | 
			
		||||
@ -21,7 +21,10 @@ public interface ScheduleLessonRepository extends CrudRepository<ScheduleLesson,
 | 
			
		||||
    Schedule findScheduleByCurriculum(Curriculum curriculum);
 | 
			
		||||
 | 
			
		||||
    @Query("select distinct sl.lesson from ScheduleLesson sl where sl.schedule = ?1")
 | 
			
		||||
    Iterable<Lesson> findLessonBySchedule(Schedule schedule);
 | 
			
		||||
    Iterable<Lesson> findLessonsBySchedule(Schedule schedule);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    @Modifying
 | 
			
		||||
    @Transactional
 | 
			
		||||
 | 
			
		||||
@ -1,9 +1,16 @@
 | 
			
		||||
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.Lesson;
 | 
			
		||||
import ovh.herisson.Clyde.Tables.Schedule;
 | 
			
		||||
 | 
			
		||||
public interface ScheduleRepository extends CrudRepository<Schedule,Long> {
 | 
			
		||||
 | 
			
		||||
    Schedule findById(long id);
 | 
			
		||||
    Schedule getById(long id);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    @Query("select distinct sl from Schedule sl where EXISTS (select c.curriculum from CurriculumCourse c where (sl.curriculum = c.curriculum) AND (c.course = ?1))")
 | 
			
		||||
    Iterable<Schedule> findAllLessonSchedule(Course course);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -0,0 +1,93 @@
 | 
			
		||||
package ovh.herisson.Clyde.Services;
 | 
			
		||||
 | 
			
		||||
import org.springframework.stereotype.Service;
 | 
			
		||||
import ovh.herisson.Clyde.Repositories.*;
 | 
			
		||||
import ovh.herisson.Clyde.Tables.*;
 | 
			
		||||
 | 
			
		||||
import java.sql.SQLOutput;
 | 
			
		||||
import java.util.Map;
 | 
			
		||||
 | 
			
		||||
@Service
 | 
			
		||||
public class LessonRequestService {
 | 
			
		||||
    private final LessonChangesRequestRepository lessonChangesRepo;
 | 
			
		||||
 | 
			
		||||
    private final UserRepository userRepo;
 | 
			
		||||
 | 
			
		||||
    private final LessonRepository lessonRepo;
 | 
			
		||||
 | 
			
		||||
    private final LessonService lessonServ;
 | 
			
		||||
 | 
			
		||||
    private final ScheduleLessonRepository scheduleLessonRepo;
 | 
			
		||||
 | 
			
		||||
    private final ScheduleRepository scheduleRepository;
 | 
			
		||||
 | 
			
		||||
    private final ScheduleLessonService scheduleLessonService;
 | 
			
		||||
 | 
			
		||||
    private final CourseRepository courseRepository;
 | 
			
		||||
    public LessonRequestService(LessonChangesRequestRepository lessonChangesRepo,
 | 
			
		||||
                                UserRepository userRepo, LessonRepository lessonRepo,
 | 
			
		||||
                                LessonService lessonServ, ScheduleLessonRepository scheduleLessonRepo, ScheduleRepository scheduleRepository, ScheduleLessonService scheduleLessonService, CourseRepository courseRepository) {
 | 
			
		||||
        this.lessonChangesRepo = lessonChangesRepo;
 | 
			
		||||
        this.userRepo = userRepo;
 | 
			
		||||
        this.lessonRepo = lessonRepo;
 | 
			
		||||
        this.lessonServ = lessonServ;
 | 
			
		||||
        this.scheduleLessonRepo = scheduleLessonRepo;
 | 
			
		||||
        this.scheduleRepository = scheduleRepository;
 | 
			
		||||
        this.scheduleLessonService = scheduleLessonService;
 | 
			
		||||
        this.courseRepository = courseRepository;
 | 
			
		||||
    }
 | 
			
		||||
    public Iterable<LessonChangesRequest> findOwnRequests(User user){
 | 
			
		||||
        return lessonChangesRepo.findOwnRequests(user);
 | 
			
		||||
    }
 | 
			
		||||
    public LessonChangesRequest save(LessonChangesRequest lessonRequest){
 | 
			
		||||
        return lessonChangesRepo.save(lessonRequest);
 | 
			
		||||
    }
 | 
			
		||||
    public LessonChangesRequest findById(long id){
 | 
			
		||||
        return lessonChangesRepo.findById(id);
 | 
			
		||||
    }
 | 
			
		||||
    public Iterable<LessonChangesRequest> getAll(){return lessonChangesRepo.findAll();}
 | 
			
		||||
 | 
			
		||||
    public boolean modifyCreateRequestState(LessonChangesRequest lessonRequest, RequestState state, String local ){
 | 
			
		||||
        if(lessonRequest == null || state == lessonRequest.getState()  || state == null){
 | 
			
		||||
            return false;}
 | 
			
		||||
        if (state == RequestState.Accepted){
 | 
			
		||||
            Course course = courseRepository.findById(lessonRequest.getCourse().getCourseID());
 | 
			
		||||
            if(courseRepository.findById(lessonRequest.getCourse().getCourseID())==null|| local == null){
 | 
			
		||||
                return false;}
 | 
			
		||||
            Lesson lesson = new Lesson(
 | 
			
		||||
                    course,
 | 
			
		||||
                    lessonRequest.getLessonStart(),
 | 
			
		||||
                    lessonRequest.getLessonEnd(),
 | 
			
		||||
                    lessonRequest.getColor(),
 | 
			
		||||
                    local,
 | 
			
		||||
                    lessonRequest.getLessonType());
 | 
			
		||||
            lesson = lessonRepo.save(lesson);
 | 
			
		||||
            scheduleLessonService.saveToAllSchedule(lesson);
 | 
			
		||||
            }
 | 
			
		||||
        lessonRequest.setState(state);
 | 
			
		||||
        save(lessonRequest);
 | 
			
		||||
        return true;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public boolean modifyChangeRequestState(Map<String, Object> updates, long lessonId,RequestState state){
 | 
			
		||||
        if(state == RequestState.Accepted){
 | 
			
		||||
            System.out.println(updates.toString());
 | 
			
		||||
 | 
			
		||||
            Lesson lesson = lessonServ.findById(lessonId);
 | 
			
		||||
            return lessonServ.modifyData(lesson.getLessonID(),updates);
 | 
			
		||||
        }
 | 
			
		||||
        return true;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void modifyDeleleRequest(LessonChangesRequest lessonChangesRequest, RequestState state){
 | 
			
		||||
        if(state == RequestState.Accepted){
 | 
			
		||||
            lessonServ.delete(lessonServ.findById(lessonChangesRequest.getLesson()));
 | 
			
		||||
            lessonChangesRequest.setState(state);}
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    public void delete (LessonChangesRequest toDelete) {
 | 
			
		||||
        lessonChangesRepo.delete(toDelete);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@ -68,17 +68,11 @@ public class LessonService {
 | 
			
		||||
 | 
			
		||||
    public boolean modifyData(long id, Map<String ,Object> updates){
 | 
			
		||||
        Lesson target = lessonRepo.findById(id);
 | 
			
		||||
        System.out.println(target);
 | 
			
		||||
 | 
			
		||||
        if(target == null)
 | 
			
		||||
            return false;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        System.out.println("test");
 | 
			
		||||
        System.out.println(updates.entrySet());
 | 
			
		||||
 | 
			
		||||
        for (Map.Entry<String , Object> entry: updates.entrySet()){
 | 
			
		||||
            System.out.println(entry);
 | 
			
		||||
            switch (entry.getKey()){
 | 
			
		||||
                case "lessonStart":
 | 
			
		||||
                    target.setLessonStart((String) entry.getValue());
 | 
			
		||||
 | 
			
		||||
@ -1,9 +1,6 @@
 | 
			
		||||
package ovh.herisson.Clyde.Services;
 | 
			
		||||
 | 
			
		||||
import ovh.herisson.Clyde.Tables.Course;
 | 
			
		||||
import ovh.herisson.Clyde.Tables.InscriptionRequest;
 | 
			
		||||
import ovh.herisson.Clyde.Tables.Lesson;
 | 
			
		||||
import ovh.herisson.Clyde.Tables.User;
 | 
			
		||||
import ovh.herisson.Clyde.Tables.*;
 | 
			
		||||
 | 
			
		||||
import java.util.ArrayList;
 | 
			
		||||
import java.util.HashMap;
 | 
			
		||||
@ -119,6 +116,32 @@ public class ProtectionService {
 | 
			
		||||
        return toReturn;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static Map<String, Object> lessonRequestWithoutPassword(LessonChangesRequest lessonRequest){
 | 
			
		||||
        if (lessonRequest == null)
 | 
			
		||||
            return null;
 | 
			
		||||
        Map<String, Object> toReturn = new HashMap<>();
 | 
			
		||||
        toReturn.put("id", lessonRequest.getId());
 | 
			
		||||
        toReturn.put("lessonStart", lessonRequest.getLessonStart());
 | 
			
		||||
        toReturn.put("lessonEnd", lessonRequest.getLessonEnd());
 | 
			
		||||
        toReturn.put("lessonType",lessonRequest.getLessonType());
 | 
			
		||||
        toReturn.put("course", courseWithoutPassword(lessonRequest.getCourse()));
 | 
			
		||||
        toReturn.put("user", userWithoutPassword(lessonRequest.getUser()));
 | 
			
		||||
        toReturn.put("requestType", lessonRequest.getRequestType());
 | 
			
		||||
        toReturn.put("state", lessonRequest.getState());
 | 
			
		||||
        toReturn.put("lessonId",lessonRequest.getLesson());
 | 
			
		||||
 | 
			
		||||
        return toReturn;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static Iterable<Map<String, Object>> lessonRequestsWithoutPassword(Iterable<LessonChangesRequest> lessonChangesRequests){
 | 
			
		||||
       ArrayList<Map<String,Object>> toReturn = new ArrayList<>();
 | 
			
		||||
 | 
			
		||||
       for(LessonChangesRequest lessonChangeRequest: lessonChangesRequests){
 | 
			
		||||
           toReturn.add(lessonRequestWithoutPassword(lessonChangeRequest));
 | 
			
		||||
       }
 | 
			
		||||
       return toReturn;
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
    public static Iterable<Map<String ,Object>> requestsWithoutPasswords(Iterable<InscriptionRequest> inscriptionRequests){
 | 
			
		||||
 | 
			
		||||
        ArrayList<Map<String,Object>> toReturn = new ArrayList<>();
 | 
			
		||||
 | 
			
		||||
@ -9,6 +9,7 @@ import ovh.herisson.Clyde.Tables.*;
 | 
			
		||||
import java.util.ArrayList;
 | 
			
		||||
import java.util.HashMap;
 | 
			
		||||
import java.util.Map;
 | 
			
		||||
import java.util.Optional;
 | 
			
		||||
 | 
			
		||||
@Service
 | 
			
		||||
public class ScheduleLessonService {
 | 
			
		||||
@ -30,6 +31,16 @@ public class ScheduleLessonService {
 | 
			
		||||
        return true;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public boolean saveToAllSchedule(Lesson lesson){
 | 
			
		||||
        Iterable<Schedule> schedules = scheduleRepo.findAllLessonSchedule(lesson.getCourse());
 | 
			
		||||
        if(schedules == null)
 | 
			
		||||
            return false;
 | 
			
		||||
        for (Schedule schedule : schedules){
 | 
			
		||||
            save(new ScheduleLesson(schedule, lesson));
 | 
			
		||||
        }
 | 
			
		||||
        return true;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public boolean delete(long lessonId){
 | 
			
		||||
        if(lessonId == 0)
 | 
			
		||||
            return false;
 | 
			
		||||
 | 
			
		||||
@ -14,7 +14,7 @@ public class ScheduleService {
 | 
			
		||||
        return scheduleRepo.save(schedule);
 | 
			
		||||
    }
 | 
			
		||||
    public Schedule findById(long id){
 | 
			
		||||
        return scheduleRepo.findById(id);
 | 
			
		||||
        return scheduleRepo.getById(id);
 | 
			
		||||
    }
 | 
			
		||||
    public void delete(Schedule schedule){
 | 
			
		||||
        scheduleRepo.delete(schedule);
 | 
			
		||||
 | 
			
		||||
@ -13,6 +13,9 @@ public enum Applications {
 | 
			
		||||
    Msg,
 | 
			
		||||
    Forum,
 | 
			
		||||
    Rdv,
 | 
			
		||||
    // teachers authorization
 | 
			
		||||
 | 
			
		||||
    ManageOwnedLessons,
 | 
			
		||||
 | 
			
		||||
    // teachers and Secretary authorization
 | 
			
		||||
    ManageCourses,
 | 
			
		||||
@ -20,6 +23,7 @@ public enum Applications {
 | 
			
		||||
    
 | 
			
		||||
    //Secretary authorization
 | 
			
		||||
    ManageSchedules,
 | 
			
		||||
    LessonRequests,
 | 
			
		||||
 | 
			
		||||
    // InscriptionService authorization
 | 
			
		||||
    Inscription,
 | 
			
		||||
 | 
			
		||||
@ -0,0 +1,130 @@
 | 
			
		||||
package ovh.herisson.Clyde.Tables;
 | 
			
		||||
 | 
			
		||||
import jakarta.persistence.*;
 | 
			
		||||
import org.hibernate.annotations.OnDelete;
 | 
			
		||||
import org.hibernate.annotations.OnDeleteAction;
 | 
			
		||||
 | 
			
		||||
@Entity
 | 
			
		||||
public class LessonChangesRequest {
 | 
			
		||||
 | 
			
		||||
    @Id
 | 
			
		||||
    @GeneratedValue(strategy = GenerationType.AUTO)
 | 
			
		||||
    private int id;
 | 
			
		||||
 | 
			
		||||
    @ManyToOne
 | 
			
		||||
    @JoinColumn(name = "Users")
 | 
			
		||||
    @OnDelete(action = OnDeleteAction.CASCADE)
 | 
			
		||||
    private User user;
 | 
			
		||||
 | 
			
		||||
    private long lessonId;
 | 
			
		||||
 | 
			
		||||
    private RequestState state;
 | 
			
		||||
 | 
			
		||||
    private String lessonStart;
 | 
			
		||||
 | 
			
		||||
    private String lessonEnd;
 | 
			
		||||
 | 
			
		||||
    private String color;
 | 
			
		||||
    @OneToOne
 | 
			
		||||
    @JoinColumn(name ="Course")
 | 
			
		||||
    private Course course;
 | 
			
		||||
 | 
			
		||||
    private String lessonType;
 | 
			
		||||
 | 
			
		||||
    private int requestType;
 | 
			
		||||
 | 
			
		||||
    public LessonChangesRequest(User user, RequestState state, String lessonStart,
 | 
			
		||||
                                String lessonEnd, String lessonType, Course course,
 | 
			
		||||
                                int requestType, String color,long lessonId){
 | 
			
		||||
        this.user = user;
 | 
			
		||||
        this.state = state;
 | 
			
		||||
        this.requestType = requestType;
 | 
			
		||||
        this.lessonType = lessonType;
 | 
			
		||||
        this.lessonStart = lessonStart;
 | 
			
		||||
        this.lessonEnd= lessonEnd;
 | 
			
		||||
        this.color = color;
 | 
			
		||||
        this.course = course;
 | 
			
		||||
        this.lessonId = lessonId;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public LessonChangesRequest() {
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public int getId() {
 | 
			
		||||
        return id;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    public RequestState getState() {
 | 
			
		||||
        return state;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public User getUser() {
 | 
			
		||||
        return user;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public long getLesson(){
 | 
			
		||||
        return lessonId;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public String getLessonStart() {
 | 
			
		||||
        return lessonStart;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public String getLessonEnd() {
 | 
			
		||||
        return lessonEnd;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    public int getRequestType() {
 | 
			
		||||
        return requestType;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public String getLessonType() {
 | 
			
		||||
        return lessonType;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public String getColor() {
 | 
			
		||||
        return color;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public Course getCourse() {
 | 
			
		||||
        return course;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setState(RequestState state) {
 | 
			
		||||
        this.state = state;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setUser(User user) {
 | 
			
		||||
        this.user = user;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setLessonStart(String lessonStart) {
 | 
			
		||||
        this.lessonStart = lessonStart;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setLessonType(String lessonType) {
 | 
			
		||||
        this.lessonType = lessonType;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setLessonEnd(String lessonEnd) {
 | 
			
		||||
        this.lessonEnd = lessonEnd;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setColor(String color) {
 | 
			
		||||
        this.color = color;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setRequestType(int requestType) {
 | 
			
		||||
        this.requestType = requestType;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    public void setCourse(Course course){
 | 
			
		||||
        this.course = course;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user