Add the backend logic for ExternalCurriculum class (need to do one more endpoint)
This commit is contained in:
		| @ -115,4 +115,20 @@ public class CurriculumController { | |||||||
|         curriculumServ.delete(toDelete); |         curriculumServ.delete(toDelete); | ||||||
|         return new ResponseEntity<>(HttpStatus.OK); |         return new ResponseEntity<>(HttpStatus.OK); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     @GetMapping("/externalcurriculum/{userId}") | ||||||
|  |     public ResponseEntity<Map<String,Object>> getStudentsExternalCursus(@RequestHeader("Authorization") String token, @PathVariable String userId){ | ||||||
|  |         if (authServ.isNotIn(new Role[]{Role.Secretary,Role.Admin, Role.Teacher},token)) | ||||||
|  |             return new UnauthorizedResponse<>(null); | ||||||
|  |  | ||||||
|  |         User u = userServ.getUserById(Long.parseLong(userId)); | ||||||
|  |         HashMap<String,Object> toReturn = userCurriculumServ.findAllExternalCurriculumByStudent(u); | ||||||
|  |  | ||||||
|  |         if (toReturn == null) | ||||||
|  |             return new ResponseEntity<>(HttpStatus.BAD_REQUEST); | ||||||
|  |  | ||||||
|  |         return new ResponseEntity<>(toReturn,HttpStatus.OK); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |  | ||||||
| } | } | ||||||
|  | |||||||
| @ -0,0 +1,11 @@ | |||||||
|  | package ovh.herisson.Clyde.Repositories; | ||||||
|  |  | ||||||
|  | import org.springframework.data.repository.CrudRepository; | ||||||
|  | import ovh.herisson.Clyde.Tables.ExternalCurriculum; | ||||||
|  | import ovh.herisson.Clyde.Tables.User; | ||||||
|  |  | ||||||
|  | import java.util.ArrayList; | ||||||
|  |  | ||||||
|  | public interface ExternalCurriculumRepository extends CrudRepository<ExternalCurriculum, Long> { | ||||||
|  |     ArrayList<ExternalCurriculum> getExternalCurriculumByUser(User user); | ||||||
|  | } | ||||||
| @ -2,8 +2,10 @@ package ovh.herisson.Clyde.Services; | |||||||
|  |  | ||||||
| import org.springframework.stereotype.Service; | import org.springframework.stereotype.Service; | ||||||
| import ovh.herisson.Clyde.Repositories.CurriculumRepository; | import ovh.herisson.Clyde.Repositories.CurriculumRepository; | ||||||
|  | import ovh.herisson.Clyde.Repositories.ExternalCurriculumRepository; | ||||||
| import ovh.herisson.Clyde.Repositories.UserCurriculumRepository; | import ovh.herisson.Clyde.Repositories.UserCurriculumRepository; | ||||||
| import ovh.herisson.Clyde.Tables.Curriculum; | import ovh.herisson.Clyde.Tables.Curriculum; | ||||||
|  | import ovh.herisson.Clyde.Tables.ExternalCurriculum; | ||||||
| import ovh.herisson.Clyde.Tables.User; | import ovh.herisson.Clyde.Tables.User; | ||||||
| import ovh.herisson.Clyde.Tables.UserCurriculum; | import ovh.herisson.Clyde.Tables.UserCurriculum; | ||||||
|  |  | ||||||
| @ -16,9 +18,11 @@ public class UserCurriculumService { | |||||||
|     private final UserCurriculumRepository userCurriculumRepository; |     private final UserCurriculumRepository userCurriculumRepository; | ||||||
|     private final CurriculumRepository curriculumRepo; |     private final CurriculumRepository curriculumRepo; | ||||||
|  |  | ||||||
|     public UserCurriculumService(UserCurriculumRepository userCurriculumRepository, CurriculumRepository curriculumRepo) { |     private final ExternalCurriculumRepository externalCurriculumRepo; | ||||||
|  |     public UserCurriculumService(UserCurriculumRepository userCurriculumRepository, CurriculumRepository curriculumRepo, ExternalCurriculumRepository externalCurriculumRepo) { | ||||||
|         this.userCurriculumRepository = userCurriculumRepository; |         this.userCurriculumRepository = userCurriculumRepository; | ||||||
|         this.curriculumRepo = curriculumRepo; |         this.curriculumRepo = curriculumRepo; | ||||||
|  |         this.externalCurriculumRepo = externalCurriculumRepo; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public Curriculum findByUser(User student){ |     public Curriculum findByUser(User student){ | ||||||
| @ -47,4 +51,29 @@ public class UserCurriculumService { | |||||||
|         return toReturn; |         return toReturn; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |  | ||||||
|  |     public HashMap<String,Object> findAllExternalCurriculumByStudent(User student) { | ||||||
|  |         ArrayList<ExternalCurriculum> list = externalCurriculumRepo.getExternalCurriculumByUser(student); | ||||||
|  |  | ||||||
|  |         ArrayList<HashMap<String, Object>> externalCurriculumList = new ArrayList<HashMap<String, Object>>(); | ||||||
|  |  | ||||||
|  |         for (int i = 0; i < list.size(); i++) { | ||||||
|  |             HashMap<String, Object> element = new HashMap<>(); | ||||||
|  |             element.put("id", list.get(0).getId()); | ||||||
|  |             element.put("user", list.get(0).getUser()); | ||||||
|  |             element.put("university", list.get(0).getUniversity()); | ||||||
|  |             element.put("formation", list.get(0).getFormation()); | ||||||
|  |             element.put("completion", list.get(0).getCompletion()); | ||||||
|  |             element.put("startYear", list.get(0).getStartYear()); | ||||||
|  |             element.put("endYear", list.get(0).getEndYear()); | ||||||
|  |             element.put("justifDocUrl", list.get(0).getJustifdocUrl()); | ||||||
|  |             element.put("state", list.get(0).getState()); | ||||||
|  |             externalCurriculumList.add(element); | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         HashMap<String, Object> toReturn = new HashMap<String, Object>(); | ||||||
|  |         toReturn.put("externalCurriculumList", externalCurriculumList); | ||||||
|  |         return toReturn; | ||||||
|  |     } | ||||||
|  |  | ||||||
| } | } | ||||||
|  | |||||||
| @ -0,0 +1,113 @@ | |||||||
|  | package ovh.herisson.Clyde.Tables; | ||||||
|  |  | ||||||
|  |  | ||||||
|  | import jakarta.persistence.*; | ||||||
|  |  | ||||||
|  | //This table stores a student's curriculum from another university | ||||||
|  | @Entity | ||||||
|  | public class ExternalCurriculum { | ||||||
|  |     @Id | ||||||
|  |     @GeneratedValue(strategy = GenerationType.AUTO) | ||||||
|  |     private int id; | ||||||
|  |  | ||||||
|  |     @ManyToOne | ||||||
|  |     @JoinColumn(name="Users") | ||||||
|  |     private User user; | ||||||
|  |  | ||||||
|  |     @ManyToOne | ||||||
|  |     @JoinColumn(name="University") | ||||||
|  |     private University university; | ||||||
|  |  | ||||||
|  |     private String formation; | ||||||
|  |  | ||||||
|  |     //This string denotes the completion of the external formation or the last year completed by the student in this formation | ||||||
|  |     private String completion; | ||||||
|  |  | ||||||
|  |     private int startYear; | ||||||
|  |     private int endYear; | ||||||
|  |     private String justifdocUrl; | ||||||
|  |  | ||||||
|  |     //Accepted if the document justifies the claimed formation | ||||||
|  |     private RequestState state; | ||||||
|  |  | ||||||
|  |     public ExternalCurriculum(){} | ||||||
|  |  | ||||||
|  |     public ExternalCurriculum(User user, University university, String formation, String completion, int startYear, int endYear, String justifdocUrl, RequestState state){ | ||||||
|  |         this.user = user; | ||||||
|  |         this.university = university; | ||||||
|  |         this.formation = formation; | ||||||
|  |         this.completion = completion; | ||||||
|  |         this.startYear = startYear; | ||||||
|  |         this.endYear = endYear; | ||||||
|  |         this.justifdocUrl = justifdocUrl; | ||||||
|  |         this.state = state; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public int getId() { | ||||||
|  |         return id; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public User getUser() { | ||||||
|  |         return user; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public void setUser(User user) { | ||||||
|  |         this.user = user; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public University getUniversity() { | ||||||
|  |         return university; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public void setUniversity(University university) { | ||||||
|  |         this.university = university; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public String getFormation() { | ||||||
|  |         return formation; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public void setFormation(String formation) { | ||||||
|  |         this.formation = formation; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public String getCompletion(){ | ||||||
|  |         return completion; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public void setCompletion(String completion) { | ||||||
|  |         this.completion = completion; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public int getStartYear() { | ||||||
|  |         return startYear; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public void setStartYear(int startYear) { | ||||||
|  |         this.startYear = startYear; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public int getEndYear() { | ||||||
|  |         return endYear; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public void setEndYear(int endYear) { | ||||||
|  |         this.endYear = endYear; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public void setJustifdocUrl(String justifdocUrl) { | ||||||
|  |         this.justifdocUrl = justifdocUrl; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public String getJustifdocUrl() { | ||||||
|  |         return justifdocUrl; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public RequestState getState() { | ||||||
|  |         return state; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public void setState(RequestState state) { | ||||||
|  |         this.state = state; | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -0,0 +1,27 @@ | |||||||
|  | package ovh.herisson.Clyde.Tables; | ||||||
|  |  | ||||||
|  |  | ||||||
|  | import jakarta.persistence.*; | ||||||
|  |  | ||||||
|  | @Entity | ||||||
|  | public class University { | ||||||
|  |     @Id | ||||||
|  |     @GeneratedValue(strategy = GenerationType.AUTO) | ||||||
|  |     private int id; | ||||||
|  |  | ||||||
|  |     private String name; | ||||||
|  |  | ||||||
|  |     public University(){} | ||||||
|  |  | ||||||
|  |     public University(String name){ | ||||||
|  |         this.name = name; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public String getName() { | ||||||
|  |         return name; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public void setName(String name) { | ||||||
|  |         this.name = name; | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -27,7 +27,6 @@ | |||||||
|  |  | ||||||
|   //Allows to display MA or BAB for years |   //Allows to display MA or BAB for years | ||||||
|   let yearprefix = ""; |   let yearprefix = ""; | ||||||
|  |  | ||||||
|   const imageSaved = ref(false) |   const imageSaved = ref(false) | ||||||
|   let ppData = ""; |   let ppData = ""; | ||||||
|  |  | ||||||
| @ -154,6 +153,11 @@ | |||||||
|                     <option v-for="item in curricula">{{getCursusDisplay(item)}}</option> |                     <option v-for="item in curricula">{{getCursusDisplay(item)}}</option> | ||||||
|                   </select> |                   </select> | ||||||
|               </div> |               </div> | ||||||
|  |               <p style="color:rgb(239,60,168);"> | ||||||
|  |                 Si vous êtes déja inscrits dans cette université veuillez vous connecter a votre compte et utilisez les fonctions | ||||||
|  |                 changer de cursus/réinscription sinon continuez ici. | ||||||
|  |               </p> | ||||||
|  |  | ||||||
|               <div style="align-self:center;" class="inputBox"> |               <div style="align-self:center;" class="inputBox"> | ||||||
|                 <button style="margin-top:25px;" @click="page++; register(outputs.firstname, outputs.surname, outputs.birthday, outputs.password, outputs.email, outputs.address, outputs.country, outputs.curriculum, ppData, null, new Date());"> |                 <button style="margin-top:25px;" @click="page++; register(outputs.firstname, outputs.surname, outputs.birthday, outputs.password, outputs.email, outputs.address, outputs.country, outputs.curriculum, ppData, null, new Date());"> | ||||||
|                   {{i18n("login.guest.nextpage")}} |                   {{i18n("login.guest.nextpage")}} | ||||||
|  | |||||||
		Reference in New Issue
	
	Block a user