Add the actual in UserCurriculum
Rework the unregister procedure Add ChangeCurriculumRequest Add the changeCurriculumRequest submit
This commit is contained in:
		@ -4,9 +4,12 @@ import org.springframework.http.HttpStatus;
 | 
			
		||||
import org.springframework.http.ResponseEntity;
 | 
			
		||||
import org.springframework.web.bind.annotation.*;
 | 
			
		||||
import ovh.herisson.Clyde.Repositories.CourseRepository;
 | 
			
		||||
import ovh.herisson.Clyde.Repositories.CurriculumRepository;
 | 
			
		||||
import ovh.herisson.Clyde.Repositories.Inscription.ChangeCurriculumRequestRepository;
 | 
			
		||||
import ovh.herisson.Clyde.Repositories.Inscription.ExemptionsRequestRepository;
 | 
			
		||||
import ovh.herisson.Clyde.Repositories.Inscription.ScholarshipRequestRepository;
 | 
			
		||||
import ovh.herisson.Clyde.Repositories.Inscription.UnregisterRequestRepository;
 | 
			
		||||
import ovh.herisson.Clyde.Repositories.UserCurriculumRepository;
 | 
			
		||||
import ovh.herisson.Clyde.Repositories.UserRepository;
 | 
			
		||||
import ovh.herisson.Clyde.Responses.UnauthorizedResponse;
 | 
			
		||||
import ovh.herisson.Clyde.Services.AuthenticatorService;
 | 
			
		||||
@ -31,8 +34,12 @@ public class RequestsController {
 | 
			
		||||
    public final UnregisterRequestRepository unregisterRequestRepository;
 | 
			
		||||
    public final CourseRepository courseRepository;
 | 
			
		||||
    public final UserService userService;
 | 
			
		||||
    public final UserCurriculumRepository userCurriculumRepository;
 | 
			
		||||
    public final CurriculumRepository curriculumRepository;
 | 
			
		||||
 | 
			
		||||
    public RequestsController(ExemptionsRequestRepository err, ScholarshipRequestRepository srr, UserRepository userRepository, AuthenticatorService authServ, UnregisterRequestRepository unregisterRequestRepository, CourseRepository courseRepository, UserService userService) {
 | 
			
		||||
    public final ChangeCurriculumRequestRepository changeCurriculumRequestRepository;
 | 
			
		||||
 | 
			
		||||
    public RequestsController(ExemptionsRequestRepository err, ScholarshipRequestRepository srr, UserRepository userRepository, AuthenticatorService authServ, UnregisterRequestRepository unregisterRequestRepository, CourseRepository courseRepository, UserService userService, UserCurriculumRepository userCurriculumRepository, CurriculumRepository curriculumRepository, ChangeCurriculumRequestRepository changeCurriculumRequestRepository) {
 | 
			
		||||
        this.err = err;
 | 
			
		||||
        this.srr = srr;
 | 
			
		||||
        this.userRepository = userRepository;
 | 
			
		||||
@ -40,6 +47,9 @@ public class RequestsController {
 | 
			
		||||
        this.unregisterRequestRepository = unregisterRequestRepository;
 | 
			
		||||
        this.courseRepository = courseRepository;
 | 
			
		||||
        this.userService = userService;
 | 
			
		||||
        this.userCurriculumRepository = userCurriculumRepository;
 | 
			
		||||
        this.curriculumRepository = curriculumRepository;
 | 
			
		||||
        this.changeCurriculumRequestRepository = changeCurriculumRequestRepository;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @PostMapping(value="/exemptionreq")
 | 
			
		||||
@ -135,14 +145,33 @@ public class RequestsController {
 | 
			
		||||
    @PatchMapping(value = "/unregister/{id}/{newstate}")
 | 
			
		||||
    public ResponseEntity<String> pathUnregReq(@PathVariable long id, @PathVariable RequestState newstate){
 | 
			
		||||
        UnregisterRequest unregisterRequest = unregisterRequestRepository.findById(id);
 | 
			
		||||
 | 
			
		||||
        User u = userRepository.findById(unregisterRequest.getRegNo());
 | 
			
		||||
        unregisterRequest.setState(newstate);
 | 
			
		||||
 | 
			
		||||
        if (newstate == RequestState.Accepted){
 | 
			
		||||
            userService.delete(userRepository.findById(unregisterRequest.getRegNo()));
 | 
			
		||||
            ArrayList<UserCurriculum> userCurricula = userCurriculumRepository.findByUserOrderByCurriculum(u);
 | 
			
		||||
            for (int i = 0; i < userCurricula.size(); i++){
 | 
			
		||||
                userCurricula.get(i).setActual(false);
 | 
			
		||||
            }
 | 
			
		||||
            userCurriculumRepository.saveAll(userCurricula);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        unregisterRequestRepository.save(unregisterRequest);
 | 
			
		||||
        return new ResponseEntity<>(HttpStatus.OK);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @PostMapping("/changecurriculumreq")
 | 
			
		||||
    public ResponseEntity<String> addChangeCurrReq(@RequestBody Map<String,Object> reqInfos){
 | 
			
		||||
        User user = userRepository.findById((Integer) reqInfos.get("userId"));
 | 
			
		||||
 | 
			
		||||
        Curriculum actualCurriculum = curriculumRepository.findById((Integer) reqInfos.get("actualcursus"));
 | 
			
		||||
 | 
			
		||||
        Curriculum destinationCurriculum = curriculumRepository.findById((Integer) reqInfos.get("newcursus"));
 | 
			
		||||
 | 
			
		||||
        ChangeCurriculumRequest changeCurriculumRequest = new ChangeCurriculumRequest(user, actualCurriculum, destinationCurriculum, new Date(), RequestState.Pending);
 | 
			
		||||
 | 
			
		||||
        changeCurriculumRequestRepository.save(changeCurriculumRequest);
 | 
			
		||||
 | 
			
		||||
        return new ResponseEntity<>(HttpStatus.OK);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -93,12 +93,12 @@ public class MockController {
 | 
			
		||||
        curriculumService.save(masterinfo1);
 | 
			
		||||
        curriculumService.save(masterinfo2);
 | 
			
		||||
 | 
			
		||||
        ucr.save(new UserCurriculum(joe, infoBab1, 2022));
 | 
			
		||||
        ucr.save(new UserCurriculum(joe, chemistryBab1, 2023));
 | 
			
		||||
        ucr.save(new UserCurriculum(joe, infoBab1, 2023));
 | 
			
		||||
        ucr.save(new UserCurriculum(joe, psychologyBab1, 2020));
 | 
			
		||||
        ucr.save(new UserCurriculum(popo, infoBab1, 2022));
 | 
			
		||||
        ucr.save(new UserCurriculum(popo, infoBab2, 2023));
 | 
			
		||||
        ucr.save(new UserCurriculum(joe, infoBab1, 2022, false));
 | 
			
		||||
        ucr.save(new UserCurriculum(joe, chemistryBab1, 2023, true));
 | 
			
		||||
        ucr.save(new UserCurriculum(joe, infoBab1, 2023, true));
 | 
			
		||||
        ucr.save(new UserCurriculum(joe, psychologyBab1, 2020, false));
 | 
			
		||||
        ucr.save(new UserCurriculum(popo, infoBab1, 2022, false));
 | 
			
		||||
        ucr.save(new UserCurriculum(popo, infoBab2, 2023, true));
 | 
			
		||||
 | 
			
		||||
        Course progra1 = new Course(5,"Programmation et algorithmique 1",joke);
 | 
			
		||||
        Course chemistry1 = new Course(12, "Thermochimie",joke);
 | 
			
		||||
 | 
			
		||||
@ -0,0 +1,7 @@
 | 
			
		||||
package ovh.herisson.Clyde.Repositories.Inscription;
 | 
			
		||||
 | 
			
		||||
import org.springframework.data.repository.CrudRepository;
 | 
			
		||||
import ovh.herisson.Clyde.Tables.ChangeCurriculumRequest;
 | 
			
		||||
 | 
			
		||||
public interface ChangeCurriculumRequestRepository extends CrudRepository<ChangeCurriculumRequest, Long> {
 | 
			
		||||
}
 | 
			
		||||
@ -12,6 +12,7 @@ import ovh.herisson.Clyde.Tables.Inscription.InscriptionRequest;
 | 
			
		||||
import ovh.herisson.Clyde.Tables.Inscription.Minerval;
 | 
			
		||||
 | 
			
		||||
import java.util.ArrayList;
 | 
			
		||||
import java.util.Calendar;
 | 
			
		||||
 | 
			
		||||
@Service
 | 
			
		||||
public class InscriptionService {
 | 
			
		||||
@ -85,7 +86,8 @@ public class InscriptionService {
 | 
			
		||||
        );
 | 
			
		||||
 | 
			
		||||
        userRepo.save(userFromRequest);
 | 
			
		||||
        userCurriculumRepo.save(new UserCurriculum(userFromRequest, curriculumRepo.findById(inscrRequest.getCurriculumId()),0));
 | 
			
		||||
        Calendar c = Calendar.getInstance();
 | 
			
		||||
        userCurriculumRepo.save(new UserCurriculum(userFromRequest, curriculumRepo.findById(inscrRequest.getCurriculumId()),c.get(Calendar.YEAR), true));
 | 
			
		||||
 | 
			
		||||
        //Create a minerval for the new student
 | 
			
		||||
        Minerval minerval = new Minerval(userFromRequest.getRegNo(), 0, 852, 2023);
 | 
			
		||||
 | 
			
		||||
@ -35,11 +35,12 @@ public class UserCurriculumService {
 | 
			
		||||
            HashMap<String, Object> element = new HashMap<>();
 | 
			
		||||
            Curriculum c = list.get(i).getCurriculum();
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
            element.put("curriculumId", c.getCurriculumId());
 | 
			
		||||
            element.put("year", c.getYear());
 | 
			
		||||
            element.put("option", c.getOption());
 | 
			
		||||
            element.put("dateyear", list.get(i).getYear());
 | 
			
		||||
            element.put("actual", list.get(i).isActual());
 | 
			
		||||
 | 
			
		||||
            curriculumlist.add(element);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -0,0 +1,83 @@
 | 
			
		||||
package ovh.herisson.Clyde.Tables;
 | 
			
		||||
 | 
			
		||||
import jakarta.persistence.*;
 | 
			
		||||
 | 
			
		||||
import java.util.Date;
 | 
			
		||||
 | 
			
		||||
@Entity
 | 
			
		||||
public class ChangeCurriculumRequest {
 | 
			
		||||
    @Id
 | 
			
		||||
    @GeneratedValue(strategy = GenerationType.AUTO)
 | 
			
		||||
    private int id;
 | 
			
		||||
 | 
			
		||||
    @ManyToOne
 | 
			
		||||
    @JoinColumn(name="Users")
 | 
			
		||||
    private User user;
 | 
			
		||||
 | 
			
		||||
    @ManyToOne
 | 
			
		||||
    @JoinColumn(name = "ActualCurriculum")
 | 
			
		||||
    private Curriculum actualCurriculum;
 | 
			
		||||
 | 
			
		||||
    @ManyToOne
 | 
			
		||||
    @JoinColumn(name = "DestCurriculum")
 | 
			
		||||
    private Curriculum destinationCurriculum;
 | 
			
		||||
 | 
			
		||||
    private Date date;
 | 
			
		||||
 | 
			
		||||
    private RequestState state;
 | 
			
		||||
 | 
			
		||||
    public ChangeCurriculumRequest(){}
 | 
			
		||||
 | 
			
		||||
    public ChangeCurriculumRequest(User user, Curriculum actualCurriculum, Curriculum destinationCurriculum, Date date, RequestState state){
 | 
			
		||||
        this.user = user;
 | 
			
		||||
        this.actualCurriculum = actualCurriculum;
 | 
			
		||||
        this.destinationCurriculum = destinationCurriculum;
 | 
			
		||||
        this.date = date;
 | 
			
		||||
        this.state = state;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public User getUser() {
 | 
			
		||||
        return user;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setUser(User user) {
 | 
			
		||||
        this.user = user;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    public Curriculum getActualCurriculum() {
 | 
			
		||||
        return actualCurriculum;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setActualCurriculum(Curriculum actualCurriculum) {
 | 
			
		||||
        this.actualCurriculum = actualCurriculum;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public Curriculum getDestinationCurriculum() {
 | 
			
		||||
        return destinationCurriculum;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setDestinationCurriculum(Curriculum destinationCurriculum) {
 | 
			
		||||
        this.destinationCurriculum = destinationCurriculum;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setDate(Date date) {
 | 
			
		||||
        this.date = date;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public Date getDate() {
 | 
			
		||||
        return date;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public RequestState getState() {
 | 
			
		||||
        return state;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setState(RequestState state) {
 | 
			
		||||
        this.state = state;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public int getId() {
 | 
			
		||||
        return id;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@ -23,10 +23,14 @@ public class UserCurriculum {
 | 
			
		||||
 | 
			
		||||
    private int year;
 | 
			
		||||
 | 
			
		||||
    public UserCurriculum(User user, Curriculum curriculum, int year){
 | 
			
		||||
    //True if the user has that curriculum at the moment false if not
 | 
			
		||||
    private boolean actual;
 | 
			
		||||
 | 
			
		||||
    public UserCurriculum(User user, Curriculum curriculum, int year, boolean actual){
 | 
			
		||||
        this.user = user;
 | 
			
		||||
        this.curriculum = curriculum;
 | 
			
		||||
        this.year = year;
 | 
			
		||||
        this.actual = actual;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public UserCurriculum() {}
 | 
			
		||||
@ -58,4 +62,12 @@ public class UserCurriculum {
 | 
			
		||||
    public void setYear(int year) {
 | 
			
		||||
        this.year = year;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setActual(boolean actual) {
 | 
			
		||||
        this.actual = actual;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public boolean isActual() {
 | 
			
		||||
        return actual;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user