Schedule management

This commit is contained in:
2024-04-14 13:52:09 +02:00
parent adaa828810
commit 9112004326
15 changed files with 517 additions and 32 deletions

View File

@ -70,7 +70,8 @@ public class ApplicationsController {
authorizedApps.add(Applications.StudentsList);}
if (!authServ.isNotIn(new Role[]{Role.Secretary,Role.Admin},token)){
authorizedApps.add(Applications.UsersList);}
authorizedApps.add(Applications.UsersList);
authorizedApps.add(Applications.ManageSchedules);}
return authorizedApps;
}
}

View File

@ -44,9 +44,8 @@ public class LessonController {
@GetMapping("/lessons/owned")
public ResponseEntity<Iterable<HashMap<String,Object>>> getOwnedLessons(@RequestHeader("Authorization") String token){
System.out.println(authServ);
System.out.println(authServ);
if (authServ.isNotIn(new Role[]{Role.Admin,Role.Teacher},token)){
System.out.println("problem ici");
return new UnauthorizedResponse<>(null);}
return new ResponseEntity<>(ProtectionService.lessonsWithoutPassword(lessonServ.findAllOwnedLesson(authServ.getUserFromToken(token))),HttpStatus.OK);
}
@ -58,7 +57,6 @@ public class LessonController {
if(authServ.isNotIn(new Role[]{Role.Secretary,Role.Admin},token))
return new UnauthorizedResponse<>(null);
Lesson createdLesson = lessonServ.save(lesson);
if(createdLesson==null)
return new ResponseEntity<>(null,HttpStatus.BAD_REQUEST);
return new ResponseEntity<>(ProtectionService.lessonWithoutPassword(createdLesson), HttpStatus.OK);

View File

@ -12,6 +12,8 @@ import ovh.herisson.Clyde.Services.CurriculumService;
import ovh.herisson.Clyde.Tables.Curriculum;
import ovh.herisson.Clyde.Tables.Role;
import ovh.herisson.Clyde.Tables.Schedule;
import ovh.herisson.Clyde.Tables.ScheduleLesson;
import ovh.herisson.Clyde.Services.LessonService;
import java.util.Map;
@ -20,6 +22,7 @@ import java.util.Map;
public class ScheduleController {
private final ScheduleService scheduleServ;
private final LessonService lessonServ;
private final UserCurriculumService userCurriculumService;
@ -28,12 +31,13 @@ public class ScheduleController {
private final ScheduleLessonService scheduleLessonServ;
public ScheduleController(ScheduleService scheduleServ, UserCurriculumService userCurriculumService, AuthenticatorService authServ, ScheduleLessonService scheduleLessonServ, CurriculumService curriculumServ) {
public ScheduleController(ScheduleService scheduleServ, UserCurriculumService userCurriculumService, AuthenticatorService authServ, ScheduleLessonService scheduleLessonServ, CurriculumService curriculumServ,LessonService lessonServ) {
this.scheduleServ = scheduleServ;
this.userCurriculumService = userCurriculumService;
this.authServ = authServ;
this.scheduleLessonServ = scheduleLessonServ;
this.curriculumServ = curriculumServ;
this.lessonServ = lessonServ;
}
@GetMapping("/schedule/{id}")
@ -76,4 +80,18 @@ public class ScheduleController {
return new UnauthorizedResponse<>(null);
return new ResponseEntity<>(scheduleServ.save(schedule),HttpStatus.OK);
}
@PostMapping("/schedule/{id}")
public ResponseEntity<String> postLessonToSchedule(@RequestHeader("Authorization") String token,
@RequestBody Long lessonId,
@PathVariable long id)
{
if (authServ.isNotIn(new Role[]{Role.Admin,Role.Secretary},token))
return new UnauthorizedResponse<>(null);
if (!scheduleLessonServ.save(new ScheduleLesson( scheduleServ.findById(id), lessonServ.findById(lessonId))))
return new ResponseEntity<>(HttpStatus.BAD_REQUEST);
return new ResponseEntity<>(HttpStatus.OK);
}
}

View File

@ -23,8 +23,11 @@ public class ScheduleLessonService {
this.scheduleRepo = scheduleRepo;
}
public void save(ScheduleLesson scheduleLesson){
public boolean save(ScheduleLesson scheduleLesson){
if(scheduleLesson == null)
return false;
scheduleLessonRepo.save(scheduleLesson);
return true;
}
public Schedule getScheduleByCurriculum(Curriculum curriculum){

View File

@ -17,6 +17,9 @@ public enum Applications {
// teachers and Secretary authorization
ManageCourses,
UsersList,
//Secretary authorization
ManageSchedules,
// InscriptionService authorization
Inscription,

View File

@ -9,7 +9,7 @@ public class Lesson {
@GeneratedValue(strategy = GenerationType.AUTO)
private int lessonID;
@ManyToOne
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name= "Course")
private Course course;