Add the management of changeCurriculum requests
This commit is contained in:
		@ -20,6 +20,7 @@ import ovh.herisson.Clyde.Tables.Inscription.ScholarshipRequest;
 | 
			
		||||
import ovh.herisson.Clyde.Tables.Inscription.UnregisterRequest;
 | 
			
		||||
 | 
			
		||||
import java.util.ArrayList;
 | 
			
		||||
import java.util.Calendar;
 | 
			
		||||
import java.util.Date;
 | 
			
		||||
import java.util.Map;
 | 
			
		||||
 | 
			
		||||
@ -196,4 +197,58 @@ public class RequestsController {
 | 
			
		||||
 | 
			
		||||
        return new ResponseEntity<>(HttpStatus.OK);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @GetMapping("/changecurriculumreq")
 | 
			
		||||
    public  ResponseEntity<ArrayList <ChangeCurriculumRequest>> getAllChangeCurrReq(@RequestHeader("Authorization") String token){
 | 
			
		||||
        if (authServ.isNotIn(new Role[]{Role.Admin,Role.Secretary,Role.InscriptionService},token))
 | 
			
		||||
            return new UnauthorizedResponse<>(null);
 | 
			
		||||
 | 
			
		||||
        ArrayList<ChangeCurriculumRequest> toReturn = new ArrayList<>();
 | 
			
		||||
 | 
			
		||||
        changeCurriculumRequestRepository.findAll().forEach(toReturn::add);
 | 
			
		||||
 | 
			
		||||
        return new ResponseEntity<>(toReturn, HttpStatus.OK);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @GetMapping("/changecurriculumreq/{id}")
 | 
			
		||||
    public ResponseEntity<ChangeCurriculumRequest> getCCrbyId(@RequestHeader("Authorization") String token, @PathVariable long id){
 | 
			
		||||
        if (authServ.isNotIn(new Role[]{Role.Admin,Role.Secretary,Role.InscriptionService},token))
 | 
			
		||||
            return new UnauthorizedResponse<>(null);
 | 
			
		||||
 | 
			
		||||
        ChangeCurriculumRequest toReturn = changeCurriculumRequestRepository.findById(id);
 | 
			
		||||
        return new ResponseEntity<>(toReturn, HttpStatus.OK);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @PatchMapping("/changecurriculumreq/{id}/{newState}")
 | 
			
		||||
    public ResponseEntity<String> editCCReq(@RequestHeader("Authorization") String token, @PathVariable long id, @PathVariable RequestState newState){
 | 
			
		||||
        if (authServ.isNotIn(new Role[]{Role.Admin,Role.Secretary,Role.InscriptionService},token))
 | 
			
		||||
            return new UnauthorizedResponse<>(null);
 | 
			
		||||
 | 
			
		||||
        ChangeCurriculumRequest toEdit = changeCurriculumRequestRepository.findById(id);
 | 
			
		||||
 | 
			
		||||
        toEdit.setState(newState);
 | 
			
		||||
 | 
			
		||||
        if (newState == RequestState.Accepted){
 | 
			
		||||
            //If actual curriculum is not null then we need to set that the user doesn't follow it anymore
 | 
			
		||||
            User u = toEdit.getUser();
 | 
			
		||||
            if (toEdit.getActualCurriculum() != null){
 | 
			
		||||
                ArrayList<UserCurriculum> listcurr = userCurriculumRepository.findByUserOrderByCurriculum(u);
 | 
			
		||||
 | 
			
		||||
                for (int i = 0; i < listcurr.size(); i++){
 | 
			
		||||
                    if (listcurr.get(i).getCurriculum() == toEdit.getActualCurriculum()){
 | 
			
		||||
                        listcurr.get(i).setActual(false);
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
                userCurriculumRepository.saveAll(listcurr);
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            Calendar c = Calendar.getInstance();
 | 
			
		||||
            UserCurriculum userCurriculum = new UserCurriculum(u, toEdit.getDestinationCurriculum(), c.get(Calendar.YEAR), true);
 | 
			
		||||
            userCurriculumRepository.save(userCurriculum);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        changeCurriculumRequestRepository.save(toEdit);
 | 
			
		||||
        return new ResponseEntity<>(HttpStatus.OK);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -4,4 +4,6 @@ import org.springframework.data.repository.CrudRepository;
 | 
			
		||||
import ovh.herisson.Clyde.Tables.ChangeCurriculumRequest;
 | 
			
		||||
 | 
			
		||||
public interface ChangeCurriculumRequestRepository extends CrudRepository<ChangeCurriculumRequest, Long> {
 | 
			
		||||
    ChangeCurriculumRequest findById(long id);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -15,4 +15,5 @@ public interface UserCurriculumRepository extends CrudRepository<UserCurriculum,
 | 
			
		||||
 | 
			
		||||
    ArrayList<UserCurriculum> findByUserOrderByCurriculum(User student);
 | 
			
		||||
    UserCurriculum findByUserAndCurriculumAndActual(User user, Curriculum curriculum, boolean actual);
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user