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