Link the ExternalCurriculum to a user after the inscription.
Add the ExternalCurriculum lists in AboutStudent.vue
This commit is contained in:
		@ -5,8 +5,10 @@ import org.springframework.http.ResponseEntity;
 | 
			
		||||
import org.springframework.web.bind.annotation.*;
 | 
			
		||||
import ovh.herisson.Clyde.Repositories.Inscription.ExternalCurriculumRepository;
 | 
			
		||||
import ovh.herisson.Clyde.Repositories.Inscription.InscriptionRepository;
 | 
			
		||||
import ovh.herisson.Clyde.Repositories.UserRepository;
 | 
			
		||||
import ovh.herisson.Clyde.Tables.Inscription.ExternalCurriculum;
 | 
			
		||||
import ovh.herisson.Clyde.Tables.Inscription.InscriptionRequest;
 | 
			
		||||
import ovh.herisson.Clyde.Tables.User;
 | 
			
		||||
 | 
			
		||||
import java.util.ArrayList;
 | 
			
		||||
import java.util.Map;
 | 
			
		||||
@ -17,10 +19,12 @@ public class ExternalCurriculumController {
 | 
			
		||||
 | 
			
		||||
    public final ExternalCurriculumRepository ecr;
 | 
			
		||||
    public final InscriptionRepository inscriptionRepository;
 | 
			
		||||
    public final UserRepository userRepository;
 | 
			
		||||
 | 
			
		||||
    public ExternalCurriculumController(ExternalCurriculumRepository ecr, InscriptionRepository inscriptionRepository) {
 | 
			
		||||
    public ExternalCurriculumController(ExternalCurriculumRepository ecr, InscriptionRepository inscriptionRepository, UserRepository userRepository) {
 | 
			
		||||
        this.ecr = ecr;
 | 
			
		||||
        this.inscriptionRepository = inscriptionRepository;
 | 
			
		||||
        this.userRepository = userRepository;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    //everyone can post some externalcurriculums (the validity of the elements is assured by the inscription service)
 | 
			
		||||
@ -28,7 +32,7 @@ public class ExternalCurriculumController {
 | 
			
		||||
    public ResponseEntity<ExternalCurriculum> postExternalCurriculum(@RequestBody Map<String, Object> externalCurrInfos){
 | 
			
		||||
        InscriptionRequest ir = inscriptionRepository.findById((Integer) externalCurrInfos.get("inscriptionRequestId"));
 | 
			
		||||
 | 
			
		||||
        ExternalCurriculum toSave = new ExternalCurriculum(ir, (String) externalCurrInfos.get("school"),(String) externalCurrInfos.get("formation"),(String) externalCurrInfos.get("completion"), (Integer)externalCurrInfos.get("startYear"), (Integer)externalCurrInfos.get("endYear"), (String)externalCurrInfos.get("justifDocUrl"));
 | 
			
		||||
        ExternalCurriculum toSave = new ExternalCurriculum(ir, (String) externalCurrInfos.get("school"),(String) externalCurrInfos.get("formation"),(String) externalCurrInfos.get("completion"), (Integer)externalCurrInfos.get("startYear"), (Integer)externalCurrInfos.get("endYear"), (String)externalCurrInfos.get("justifDocUrl"), null);
 | 
			
		||||
 | 
			
		||||
        return new ResponseEntity<>(ecr.save(toSave), HttpStatus.OK);
 | 
			
		||||
    }
 | 
			
		||||
@ -40,4 +44,12 @@ public class ExternalCurriculumController {
 | 
			
		||||
        ArrayList<ExternalCurriculum> toReturn = ecr.getExternalCurriculumByInscriptionRequest(ir);
 | 
			
		||||
        return new ResponseEntity<>(toReturn, HttpStatus.OK);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @GetMapping("/externalcurriculumbyuser/{userId}")
 | 
			
		||||
    public ResponseEntity<ArrayList<ExternalCurriculum>> getExternalCurrByUser(@PathVariable long userId){
 | 
			
		||||
        User user = userRepository.findById(userId);
 | 
			
		||||
 | 
			
		||||
        ArrayList<ExternalCurriculum> toReturn = ecr.getExternalCurriculumByUser(user);
 | 
			
		||||
        return new ResponseEntity<>(toReturn, HttpStatus.OK);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -128,7 +128,7 @@ public class MockController {
 | 
			
		||||
 | 
			
		||||
        inscriptionService.save(inscriptionRequest);
 | 
			
		||||
 | 
			
		||||
        ExternalCurriculum externalCurriculum = new ExternalCurriculum(inscriptionRequest, "HEH", "Bachelier en informatique", "Completed", 2015, 2018, null);
 | 
			
		||||
        ExternalCurriculum externalCurriculum = new ExternalCurriculum(inscriptionRequest, "HEH", "Bachelier en informatique", "Completed", 2015, 2018, null, null);
 | 
			
		||||
        externalCurriculumRepository.save(externalCurriculum);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -3,11 +3,13 @@ package ovh.herisson.Clyde.Repositories.Inscription;
 | 
			
		||||
import org.springframework.data.repository.CrudRepository;
 | 
			
		||||
import ovh.herisson.Clyde.Tables.Inscription.ExternalCurriculum;
 | 
			
		||||
import ovh.herisson.Clyde.Tables.Inscription.InscriptionRequest;
 | 
			
		||||
import ovh.herisson.Clyde.Tables.User;
 | 
			
		||||
 | 
			
		||||
import java.util.ArrayList;
 | 
			
		||||
 | 
			
		||||
public interface ExternalCurriculumRepository extends CrudRepository<ExternalCurriculum, Long> {
 | 
			
		||||
    ArrayList<ExternalCurriculum> getExternalCurriculumByInscriptionRequest(InscriptionRequest ir);
 | 
			
		||||
 | 
			
		||||
    ArrayList<ExternalCurriculum> getExternalCurriculumByUser(User user);
 | 
			
		||||
    ExternalCurriculum getExternalCurriculumById(long id);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -3,12 +3,16 @@ package ovh.herisson.Clyde.Services.Inscription;
 | 
			
		||||
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
 | 
			
		||||
import org.springframework.stereotype.Service;
 | 
			
		||||
import ovh.herisson.Clyde.Repositories.*;
 | 
			
		||||
import ovh.herisson.Clyde.Repositories.Inscription.ExternalCurriculumRepository;
 | 
			
		||||
import ovh.herisson.Clyde.Repositories.Inscription.InscriptionRepository;
 | 
			
		||||
import ovh.herisson.Clyde.Repositories.Inscription.MinervalRepository;
 | 
			
		||||
import ovh.herisson.Clyde.Tables.*;
 | 
			
		||||
import ovh.herisson.Clyde.Tables.Inscription.ExternalCurriculum;
 | 
			
		||||
import ovh.herisson.Clyde.Tables.Inscription.InscriptionRequest;
 | 
			
		||||
import ovh.herisson.Clyde.Tables.Inscription.Minerval;
 | 
			
		||||
 | 
			
		||||
import java.util.ArrayList;
 | 
			
		||||
 | 
			
		||||
@Service
 | 
			
		||||
public class InscriptionService {
 | 
			
		||||
 | 
			
		||||
@ -22,14 +26,15 @@ public class InscriptionService {
 | 
			
		||||
 | 
			
		||||
    private final MinervalRepository minervalRepository;
 | 
			
		||||
    private final BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
 | 
			
		||||
    private final ExternalCurriculumRepository externalCurriculumRepository;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    public InscriptionService(InscriptionRepository inscriptionRepo, UserRepository userRepo, UserCurriculumRepository userCurriculumRepo, CurriculumRepository curriculumRepo, MinervalRepository minervalRepository){
 | 
			
		||||
    public InscriptionService(InscriptionRepository inscriptionRepo, UserRepository userRepo, UserCurriculumRepository userCurriculumRepo, CurriculumRepository curriculumRepo, MinervalRepository minervalRepository, ExternalCurriculumRepository externalCurriculumRepository){
 | 
			
		||||
        this.inscriptionRepo = inscriptionRepo;
 | 
			
		||||
        this.userRepo = userRepo;
 | 
			
		||||
        this.userCurriculumRepo = userCurriculumRepo;
 | 
			
		||||
        this.curriculumRepo = curriculumRepo;
 | 
			
		||||
        this.minervalRepository = minervalRepository;
 | 
			
		||||
        this.externalCurriculumRepository = externalCurriculumRepository;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public InscriptionRequest save(InscriptionRequest inscriptionRequest){
 | 
			
		||||
@ -86,6 +91,12 @@ public class InscriptionService {
 | 
			
		||||
        Minerval minerval = new Minerval(userFromRequest.getRegNo(), 0, 852, 2023);
 | 
			
		||||
        minervalRepository.save(minerval);
 | 
			
		||||
 | 
			
		||||
        //Assign the externals curriculums from the inscription request to newly created student
 | 
			
		||||
        ArrayList<ExternalCurriculum> extCurrList = externalCurriculumRepository.getExternalCurriculumByInscriptionRequest(inscrRequest);
 | 
			
		||||
        for (int i = 0; i < extCurrList.size(); i++){
 | 
			
		||||
            extCurrList.get(i).setUser(userFromRequest);
 | 
			
		||||
            externalCurriculumRepository.save(extCurrList.get(i));
 | 
			
		||||
        }
 | 
			
		||||
        return true;
 | 
			
		||||
    }
 | 
			
		||||
    public void delete(InscriptionRequest toDelete) {
 | 
			
		||||
 | 
			
		||||
@ -2,6 +2,7 @@ package ovh.herisson.Clyde.Tables.Inscription;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
import jakarta.persistence.*;
 | 
			
		||||
import ovh.herisson.Clyde.Tables.User;
 | 
			
		||||
 | 
			
		||||
//This table stores a student's curriculum from another university
 | 
			
		||||
@Entity
 | 
			
		||||
@ -10,10 +11,15 @@ public class ExternalCurriculum {
 | 
			
		||||
    @GeneratedValue(strategy = GenerationType.AUTO)
 | 
			
		||||
    private int id;
 | 
			
		||||
 | 
			
		||||
    //An external curriculum is first linked to an inscription request and when it is accepted and the user is created we link it to the user
 | 
			
		||||
    @ManyToOne(fetch = FetchType.EAGER)
 | 
			
		||||
    @JoinColumn(name="InscriptionRequest")
 | 
			
		||||
    private InscriptionRequest inscriptionRequest;
 | 
			
		||||
 | 
			
		||||
    @ManyToOne(fetch = FetchType.EAGER)
 | 
			
		||||
    @JoinColumn(name="Users")
 | 
			
		||||
    private User user;
 | 
			
		||||
 | 
			
		||||
    private String school;
 | 
			
		||||
 | 
			
		||||
    private String formation;
 | 
			
		||||
@ -27,7 +33,7 @@ public class ExternalCurriculum {
 | 
			
		||||
 | 
			
		||||
    public ExternalCurriculum(){}
 | 
			
		||||
 | 
			
		||||
    public ExternalCurriculum(InscriptionRequest ir, String school, String formation, String completion, int startYear, int endYear, String justifdocUrl){
 | 
			
		||||
    public ExternalCurriculum(InscriptionRequest ir, String school, String formation, String completion, int startYear, int endYear, String justifdocUrl,User user){
 | 
			
		||||
        this.inscriptionRequest = ir;
 | 
			
		||||
        this.school = school;
 | 
			
		||||
        this.formation = formation;
 | 
			
		||||
@ -35,6 +41,7 @@ public class ExternalCurriculum {
 | 
			
		||||
        this.startYear = startYear;
 | 
			
		||||
        this.endYear = endYear;
 | 
			
		||||
        this.justifdocUrl = justifdocUrl;
 | 
			
		||||
        this.user = user;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public int getId() {
 | 
			
		||||
@ -96,4 +103,12 @@ public class ExternalCurriculum {
 | 
			
		||||
    public String getJustifdocUrl() {
 | 
			
		||||
        return justifdocUrl;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setUser(User user) {
 | 
			
		||||
        this.user = user;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public User getUser() {
 | 
			
		||||
        return user;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user