1
0
forked from PGL/Clyde

Fix the implementation of externalCurriculum upload

This commit is contained in:
2024-04-04 16:54:11 +02:00
parent 8442101c40
commit 648b73b585
7 changed files with 167 additions and 44 deletions

View File

@ -4,11 +4,11 @@ package ovh.herisson.Clyde.EndPoints;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import ovh.herisson.Clyde.Repositories.ExternalCurriculumRepository;
import ovh.herisson.Clyde.Repositories.InscriptionRepository;
import ovh.herisson.Clyde.Responses.UnauthorizedResponse;
import ovh.herisson.Clyde.Services.*;
import ovh.herisson.Clyde.Tables.Curriculum;
import ovh.herisson.Clyde.Tables.Role;
import ovh.herisson.Clyde.Tables.User;
import ovh.herisson.Clyde.Tables.*;
import java.util.HashMap;
import java.util.Map;
@ -23,15 +23,18 @@ public class CurriculumController {
private final UserCurriculumService userCurriculumServ;
private final CurriculumCourseService curriculumCourseServ;
private final InscriptionRepository ir;
private final UserService userServ;
public CurriculumController(CurriculumService curriculumServ, AuthenticatorService authServ, UserCurriculumService userCurriculumServ, CurriculumCourseService curriculumCourseServ, UserService userServ){
private final ExternalCurriculumRepository ecr;
public CurriculumController(CurriculumService curriculumServ, AuthenticatorService authServ, UserCurriculumService userCurriculumServ, CurriculumCourseService curriculumCourseServ, InscriptionRepository ir, UserService userServ, ExternalCurriculumRepository ecr){
this.curriculumServ = curriculumServ;
this.authServ = authServ;
this.userCurriculumServ = userCurriculumServ;
this.curriculumCourseServ = curriculumCourseServ;
this.ir = ir;
this.userServ = userServ;
this.ecr = ecr;
}
@GetMapping("/curriculum/{id}")
@ -116,13 +119,12 @@ public class CurriculumController {
return new ResponseEntity<>(HttpStatus.OK);
}
@GetMapping("/externalcurriculum/{userId}")
public ResponseEntity<Map<String,Object>> getStudentsExternalCurriculum(@RequestHeader("Authorization") String token, @PathVariable String userId){
@GetMapping("/externalcurriculum/{inscriptionRequestId}")
public ResponseEntity<Map<String,Object>> getInscriptionRequestExternalCurriculum(@RequestHeader("Authorization") String token, @PathVariable String inscriptionRequestId){
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);
HashMap<String,Object> toReturn = userCurriculumServ.findAllExternalCurriculumByInscriptionRequestId(Long.parseLong(inscriptionRequestId));
if (toReturn == null)
return new ResponseEntity<>(HttpStatus.BAD_REQUEST);
@ -131,4 +133,11 @@ public class CurriculumController {
}
//Note : everyone can post some externalcurriculums (the validity of the elements is assured by the inscription service)
@PostMapping("/externalcurriculum")
public ResponseEntity<ExternalCurriculum> postExternalCurriculum(@RequestBody ExternalCurriculum ec){
ec.setState(RequestState.Pending);
return new ResponseEntity<>(ecr.save(ec), HttpStatus.OK);
}
}

View File

@ -2,10 +2,11 @@ package ovh.herisson.Clyde.Repositories;
import org.springframework.data.repository.CrudRepository;
import ovh.herisson.Clyde.Tables.ExternalCurriculum;
import ovh.herisson.Clyde.Tables.InscriptionRequest;
import ovh.herisson.Clyde.Tables.User;
import java.util.ArrayList;
public interface ExternalCurriculumRepository extends CrudRepository<ExternalCurriculum, Long> {
ArrayList<ExternalCurriculum> getExternalCurriculumByUser(User user);
ArrayList<ExternalCurriculum> getExternalCurriculumByInscriptionRequestId(Long id);
}

View File

@ -4,10 +4,7 @@ import org.springframework.stereotype.Service;
import ovh.herisson.Clyde.Repositories.CurriculumRepository;
import ovh.herisson.Clyde.Repositories.ExternalCurriculumRepository;
import ovh.herisson.Clyde.Repositories.UserCurriculumRepository;
import ovh.herisson.Clyde.Tables.Curriculum;
import ovh.herisson.Clyde.Tables.ExternalCurriculum;
import ovh.herisson.Clyde.Tables.User;
import ovh.herisson.Clyde.Tables.UserCurriculum;
import ovh.herisson.Clyde.Tables.*;
import java.util.ArrayList;
import java.util.HashMap;
@ -52,16 +49,16 @@ public class UserCurriculumService {
}
public HashMap<String,Object> findAllExternalCurriculumByStudent(User student) {
ArrayList<ExternalCurriculum> list = externalCurriculumRepo.getExternalCurriculumByUser(student);
public HashMap<String,Object> findAllExternalCurriculumByInscriptionRequestId(Long id) {
ArrayList<ExternalCurriculum> list = externalCurriculumRepo.getExternalCurriculumByInscriptionRequestId(id);
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("inscriptionRequestId", list.get(0).getInscriptionRequestId());
element.put("school", list.get(0).getSchool());
element.put("formation", list.get(0).getFormation());
element.put("completion", list.get(0).getCompletion());
element.put("startYear", list.get(0).getStartYear());

View File

@ -10,13 +10,9 @@ public class ExternalCurriculum {
@GeneratedValue(strategy = GenerationType.AUTO)
private int id;
@ManyToOne
@JoinColumn(name="Users")
private User user;
private Long inscriptionRequestId;
@ManyToOne
@JoinColumn(name="University")
private University university;
private String school;
private String formation;
@ -32,9 +28,9 @@ public class ExternalCurriculum {
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;
public ExternalCurriculum(Long ir, String school, String formation, String completion, int startYear, int endYear, String justifdocUrl, RequestState state){
this.inscriptionRequestId = ir;
this.school = school;
this.formation = formation;
this.completion = completion;
this.startYear = startYear;
@ -47,20 +43,20 @@ public class ExternalCurriculum {
return id;
}
public User getUser() {
return user;
public Long getInscriptionRequestId() {
return inscriptionRequestId;
}
public void setUser(User user) {
this.user = user;
public void setInscriptionRequest(Long inscriptionRequestId) {
this.inscriptionRequestId = inscriptionRequestId;
}
public University getUniversity() {
return university;
public String getSchool() {
return school;
}
public void setUniversity(University university) {
this.university = university;
public void setSchool(String school) {
this.school = school;
}
public String getFormation() {

View File

@ -15,7 +15,6 @@ public class InscriptionRequest {
private String email;
private String country;
private Date birthDate;
private Long curriculumId;
private RequestState state;
private String profilePicture;