Add the unregistration of a specific cursus only
This commit is contained in:
		| @ -103,7 +103,15 @@ public class RequestsController { | ||||
|     @PostMapping(value = "/unregister") | ||||
|     public ResponseEntity<String> postUnregReq(@RequestBody Map<String,Object> uninscr){ | ||||
|         User u = userRepository.findById((int) uninscr.get("userId")); | ||||
|         UnregisterRequest ur = new UnregisterRequest(RequestState.Pending, (String) uninscr.get("reason"), new Date(), u.getRegNo(), u.getFirstName(), u.getLastName(), u.getEmail()); | ||||
|         Curriculum c; | ||||
|  | ||||
|         if (uninscr.get("curriculumId") == null){ | ||||
|             c = null; | ||||
|         }else{ | ||||
|             c = curriculumRepository.findById((Integer) uninscr.get("curriculumId")); | ||||
|         } | ||||
|  | ||||
|         UnregisterRequest ur = new UnregisterRequest(RequestState.Pending, (String) uninscr.get("reason"), new Date(), u.getRegNo(), u.getFirstName(), u.getLastName(), u.getEmail(), c); | ||||
|         unregisterRequestRepository.save(ur); | ||||
|         return new ResponseEntity<>(HttpStatus.OK); | ||||
|     } | ||||
| @ -149,11 +157,18 @@ public class RequestsController { | ||||
|         unregisterRequest.setState(newstate); | ||||
|  | ||||
|         if (newstate == RequestState.Accepted){ | ||||
|             ArrayList<UserCurriculum> userCurricula = userCurriculumRepository.findByUserOrderByCurriculum(u); | ||||
|             for (int i = 0; i < userCurricula.size(); i++){ | ||||
|                 userCurricula.get(i).setActual(false); | ||||
|             if (unregisterRequest.getCurriculum() == null){ | ||||
|                 ArrayList<UserCurriculum> userCurricula = userCurriculumRepository.findByUserOrderByCurriculum(u); | ||||
|                 for (int i = 0; i < userCurricula.size(); i++){ | ||||
|                     userCurricula.get(i).setActual(false); | ||||
|                 } | ||||
|                 userCurriculumRepository.saveAll(userCurricula); | ||||
|             }else{ | ||||
|                 //This usercurriculum will contain the usercurriculum to set false | ||||
|                 UserCurriculum userCurriculum = userCurriculumRepository.findByUserAndCurriculumAndActual(u, unregisterRequest.getCurriculum(), true); | ||||
|                 userCurriculum.setActual(false); | ||||
|                 userCurriculumRepository.save(userCurriculum); | ||||
|             } | ||||
|             userCurriculumRepository.saveAll(userCurricula); | ||||
|         } | ||||
|  | ||||
|         unregisterRequestRepository.save(unregisterRequest); | ||||
|  | ||||
| @ -128,7 +128,7 @@ public class MockController { | ||||
|  | ||||
|         inscriptionService.save(inscriptionRequest); | ||||
|  | ||||
|         UnregisterRequest unregisterRequest = new UnregisterRequest(RequestState.Pending, "je veux partir", new Date(), joe.getRegNo(), joe.getFirstName(), joe.getLastName(), joe.getEmail()); | ||||
|         UnregisterRequest unregisterRequest = new UnregisterRequest(RequestState.Pending, "je veux partir", new Date(), joe.getRegNo(), joe.getFirstName(), joe.getLastName(), joe.getEmail(), null); | ||||
|         uninscriptionRequestRepository.save(unregisterRequest); | ||||
|  | ||||
|         ExternalCurriculum externalCurriculum = new ExternalCurriculum(inscriptionRequest, "HEH", "Bachelier en informatique", "Completed", 2015, 2018, null, null); | ||||
|  | ||||
| @ -14,4 +14,5 @@ public interface UserCurriculumRepository extends CrudRepository<UserCurriculum, | ||||
|     Curriculum findByUser(User student); | ||||
|  | ||||
|     ArrayList<UserCurriculum> findByUserOrderByCurriculum(User student); | ||||
|     UserCurriculum findByUserAndCurriculumAndActual(User user, Curriculum curriculum, boolean actual); | ||||
| } | ||||
|  | ||||
| @ -1,6 +1,7 @@ | ||||
| package ovh.herisson.Clyde.Tables.Inscription; | ||||
|  | ||||
| import jakarta.persistence.*; | ||||
| import ovh.herisson.Clyde.Tables.Curriculum; | ||||
| import ovh.herisson.Clyde.Tables.RequestState; | ||||
| import ovh.herisson.Clyde.Tables.User; | ||||
|  | ||||
| @ -24,7 +25,12 @@ public class UnregisterRequest { | ||||
|  | ||||
|     private String email; | ||||
|  | ||||
|     public UnregisterRequest(RequestState state, String reason, Date date, long regNo, String firstName, String lastName, String email){ | ||||
|     //Null if the user unregister for the academic year, contains a curriculum if the user wants to unregister from a specific curriculum | ||||
|     @ManyToOne | ||||
|     @JoinColumn(name = "Curriculum") | ||||
|     private Curriculum curriculum; | ||||
|  | ||||
|     public UnregisterRequest(RequestState state, String reason, Date date, long regNo, String firstName, String lastName, String email, Curriculum curriculum){ | ||||
|         this.state = state; | ||||
|         this.reason = reason; | ||||
|         this.date = date; | ||||
| @ -32,6 +38,7 @@ public class UnregisterRequest { | ||||
|         this.firstName = firstName; | ||||
|         this.lastName = lastName; | ||||
|         this.email = email; | ||||
|         this.curriculum = curriculum; | ||||
|     } | ||||
|  | ||||
|     public UnregisterRequest(){} | ||||
| @ -95,5 +102,14 @@ public class UnregisterRequest { | ||||
|     public long getRegNo() { | ||||
|         return regNo; | ||||
|     } | ||||
|  | ||||
|     public void setCurriculum(Curriculum curriculum) { | ||||
|         this.curriculum = curriculum; | ||||
|     } | ||||
|  | ||||
|     public Curriculum getCurriculum() { | ||||
|         return curriculum; | ||||
|     } | ||||
|  | ||||
| } | ||||
|  | ||||
|  | ||||
		Reference in New Issue
	
	Block a user