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