Merge remote-tracking branch 'origin/master' into Max/Backend/GetUserById
This commit is contained in:
		| @ -11,7 +11,6 @@ import ovh.herisson.Clyde.Services.TeacherCourseService; | |||||||
| import ovh.herisson.Clyde.Tables.Course; | import ovh.herisson.Clyde.Tables.Course; | ||||||
| import ovh.herisson.Clyde.Tables.Role; | import ovh.herisson.Clyde.Tables.Role; | ||||||
| import ovh.herisson.Clyde.Tables.User; | import ovh.herisson.Clyde.Tables.User; | ||||||
|  |  | ||||||
| import java.util.HashMap; | import java.util.HashMap; | ||||||
| import java.util.Map; | import java.util.Map; | ||||||
|  |  | ||||||
| @ -119,4 +118,20 @@ public class CourseController { | |||||||
|  |  | ||||||
|         return new ResponseEntity<>(HttpStatus.OK); |         return new ResponseEntity<>(HttpStatus.OK); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |  | ||||||
|  |     @DeleteMapping("course/{id}") | ||||||
|  |     public ResponseEntity<String> deleteUser(@RequestHeader("Authorization") String token, @PathVariable Long id){ | ||||||
|  |         if (authServ.isNotIn(new Role[]{Role.Admin,Role.Secretary}, token)) | ||||||
|  |             return new UnauthorizedResponse<>(null); | ||||||
|  |  | ||||||
|  |         Course toDelete = courseServ.findById(id); | ||||||
|  |  | ||||||
|  |         if (toDelete == null) | ||||||
|  |             return new ResponseEntity<>(HttpStatus.BAD_REQUEST); | ||||||
|  |  | ||||||
|  |  | ||||||
|  |         courseServ.delete(courseServ.findById(id)); | ||||||
|  |         return new ResponseEntity<>(HttpStatus.OK); | ||||||
|  |     } | ||||||
| } | } | ||||||
|  | |||||||
| @ -5,9 +5,7 @@ import org.springframework.http.HttpStatus; | |||||||
| import org.springframework.http.ResponseEntity; | import org.springframework.http.ResponseEntity; | ||||||
| import org.springframework.web.bind.annotation.*; | import org.springframework.web.bind.annotation.*; | ||||||
| import ovh.herisson.Clyde.Responses.UnauthorizedResponse; | import ovh.herisson.Clyde.Responses.UnauthorizedResponse; | ||||||
| import ovh.herisson.Clyde.Services.AuthenticatorService; | import ovh.herisson.Clyde.Services.*; | ||||||
| import ovh.herisson.Clyde.Services.CurriculumCourseService; |  | ||||||
| import ovh.herisson.Clyde.Services.CurriculumService; |  | ||||||
| import ovh.herisson.Clyde.Tables.Curriculum; | import ovh.herisson.Clyde.Tables.Curriculum; | ||||||
| import ovh.herisson.Clyde.Tables.Role; | import ovh.herisson.Clyde.Tables.Role; | ||||||
|  |  | ||||||
| @ -21,11 +19,13 @@ public class CurriculumController { | |||||||
|     private final CurriculumService curriculumServ; |     private final CurriculumService curriculumServ; | ||||||
|     private final AuthenticatorService authServ; |     private final AuthenticatorService authServ; | ||||||
|  |  | ||||||
|  |     private final UserCurriculumService userCurriculumServ; | ||||||
|     private final CurriculumCourseService curriculumCourseServ; |     private final CurriculumCourseService curriculumCourseServ; | ||||||
|  |  | ||||||
|     public CurriculumController(CurriculumService curriculumServ, AuthenticatorService authServ, CurriculumCourseService curriculumCourseServ){ |     public CurriculumController(CurriculumService curriculumServ, AuthenticatorService authServ, UserCurriculumService userCurriculumServ, CurriculumCourseService curriculumCourseServ){ | ||||||
|         this.curriculumServ = curriculumServ; |         this.curriculumServ = curriculumServ; | ||||||
|         this.authServ = authServ; |         this.authServ = authServ; | ||||||
|  |         this.userCurriculumServ = userCurriculumServ; | ||||||
|         this.curriculumCourseServ = curriculumCourseServ; |         this.curriculumCourseServ = curriculumCourseServ; | ||||||
|     } |     } | ||||||
|  |  | ||||||
| @ -39,6 +39,19 @@ public class CurriculumController { | |||||||
|         return new ResponseEntity<>(curriculumCourseServ.getDepthCurriculum(foundCurriculum), HttpStatus.OK); |         return new ResponseEntity<>(curriculumCourseServ.getDepthCurriculum(foundCurriculum), HttpStatus.OK); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     @GetMapping("/curriculum") | ||||||
|  |     public ResponseEntity<Map<String ,Object>> findSelfCurriculum(@RequestHeader("Authorization") String token){ | ||||||
|  |         if (authServ.getUserFromToken(token) == null) | ||||||
|  |             return new UnauthorizedResponse<>(null); | ||||||
|  |  | ||||||
|  |         Curriculum curriculum = userCurriculumServ.findByUser(authServ.getUserFromToken(token)); | ||||||
|  |  | ||||||
|  |         if (curriculum == null) | ||||||
|  |             return new ResponseEntity<>(HttpStatus.BAD_REQUEST); | ||||||
|  |  | ||||||
|  |         return new ResponseEntity<>(curriculumCourseServ.getDepthCurriculum(curriculum),HttpStatus.OK); | ||||||
|  |     } | ||||||
|  |  | ||||||
|     @GetMapping("/curriculums") |     @GetMapping("/curriculums") | ||||||
|     public ResponseEntity<Iterable<Map<String, Object>>> findAllIndDepth(){ |     public ResponseEntity<Iterable<Map<String, Object>>> findAllIndDepth(){ | ||||||
|         return new ResponseEntity<>(curriculumCourseServ.getAllDepthCurriculum(),HttpStatus.OK); |         return new ResponseEntity<>(curriculumCourseServ.getAllDepthCurriculum(),HttpStatus.OK); | ||||||
| @ -67,4 +80,18 @@ public class CurriculumController { | |||||||
|  |  | ||||||
|         return new ResponseEntity<>(HttpStatus.OK); |         return new ResponseEntity<>(HttpStatus.OK); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     @DeleteMapping("/curriculum/{id}") | ||||||
|  |     public ResponseEntity<String > deleteCurriculum(@RequestHeader("Authorization") String token, @PathVariable Long id){ | ||||||
|  |         if (authServ.isNotIn(new Role[]{Role.Admin,Role.Secretary}, token)) | ||||||
|  |             return new UnauthorizedResponse<>(null); | ||||||
|  |  | ||||||
|  |         Curriculum toDelete = curriculumServ.findById(id); | ||||||
|  |  | ||||||
|  |         if (toDelete == null) | ||||||
|  |             return new ResponseEntity<>(HttpStatus.BAD_REQUEST); | ||||||
|  |  | ||||||
|  |         curriculumServ.delete(toDelete); | ||||||
|  |         return new ResponseEntity<>(HttpStatus.OK); | ||||||
|  |     } | ||||||
| } | } | ||||||
|  | |||||||
| @ -6,11 +6,10 @@ import org.springframework.web.bind.annotation.*; | |||||||
| import ovh.herisson.Clyde.Responses.UnauthorizedResponse; | import ovh.herisson.Clyde.Responses.UnauthorizedResponse; | ||||||
| import ovh.herisson.Clyde.Services.AuthenticatorService; | import ovh.herisson.Clyde.Services.AuthenticatorService; | ||||||
| import ovh.herisson.Clyde.Services.InscriptionService; | import ovh.herisson.Clyde.Services.InscriptionService; | ||||||
|  | import ovh.herisson.Clyde.Services.ProtectionService; | ||||||
| import ovh.herisson.Clyde.Tables.InscriptionRequest; | import ovh.herisson.Clyde.Tables.InscriptionRequest; | ||||||
| import ovh.herisson.Clyde.Tables.RequestState; | import ovh.herisson.Clyde.Tables.RequestState; | ||||||
| import ovh.herisson.Clyde.Tables.Role; | import ovh.herisson.Clyde.Tables.Role; | ||||||
| import java.util.ArrayList; |  | ||||||
| import java.util.HashMap; |  | ||||||
| import java.util.Map; | import java.util.Map; | ||||||
|  |  | ||||||
| @RestController | @RestController | ||||||
| @ -34,13 +33,8 @@ public class InscriptionController { | |||||||
|             return new UnauthorizedResponse<>(null); |             return new UnauthorizedResponse<>(null); | ||||||
|  |  | ||||||
|         Iterable<InscriptionRequest> inscriptionRequests = inscriptionServ.getAll(); |         Iterable<InscriptionRequest> inscriptionRequests = inscriptionServ.getAll(); | ||||||
|         ArrayList<Map<String,Object>> toReturn = new ArrayList<>(); |  | ||||||
|  |  | ||||||
|         for (InscriptionRequest i:inscriptionRequests){ |         return new ResponseEntity<>(ProtectionService.requestsWithoutPasswords(inscriptionRequests), HttpStatus.OK); | ||||||
|             toReturn.add(requestWithoutPassword(i)); |  | ||||||
|         } |  | ||||||
|  |  | ||||||
|         return new ResponseEntity<>(toReturn, HttpStatus.OK); |  | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |  | ||||||
| @ -55,38 +49,35 @@ public class InscriptionController { | |||||||
|         if (foundInscriptionRequest == null) |         if (foundInscriptionRequest == null) | ||||||
|             return new ResponseEntity<>(null, HttpStatus.BAD_REQUEST); |             return new ResponseEntity<>(null, HttpStatus.BAD_REQUEST); | ||||||
|  |  | ||||||
|         return new ResponseEntity<>(requestWithoutPassword(foundInscriptionRequest), HttpStatus.OK); |         return new ResponseEntity<>(ProtectionService.requestWithoutPassword(foundInscriptionRequest), HttpStatus.OK); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     @PatchMapping("/request/register/{id}") |     @PatchMapping("/request/register/{id}") | ||||||
|     public ResponseEntity<InscriptionRequest> changeRequestState(@PathVariable long id, |     public ResponseEntity<InscriptionRequest> changeRequestState(@PathVariable long id, | ||||||
|                                                                  @RequestHeader("Authorization") String token, |                                                                  @RequestHeader("Authorization") String token, | ||||||
|                                                                  @RequestBody RequestState requestState) |                                                                  @RequestBody RequestState state) | ||||||
|     { |     { | ||||||
|  |  | ||||||
|         if (authServ.isNotIn(new Role[]{Role.InscriptionService,Role.Admin},token)) |         if (authServ.isNotIn(new Role[]{Role.InscriptionService,Role.Admin},token)) | ||||||
|             return new UnauthorizedResponse<>(null); |             return new UnauthorizedResponse<>(null); | ||||||
|  |  | ||||||
|         if (!inscriptionServ.modifyState(id, requestState)) |         if (!inscriptionServ.modifyState(id, state)) | ||||||
|             return new ResponseEntity<>(HttpStatus.BAD_REQUEST); |             return new ResponseEntity<>(HttpStatus.BAD_REQUEST); | ||||||
|  |  | ||||||
|         return new ResponseEntity<>(HttpStatus.OK); |         return new ResponseEntity<>(HttpStatus.OK); | ||||||
|     } |     } | ||||||
|  |     @DeleteMapping("/request/register/{id}") | ||||||
|  |     public ResponseEntity<String > deleteRequest(@RequestHeader("Authorization") String token, @PathVariable Long id){ | ||||||
|  |         if (authServ.isNotIn(new Role[]{Role.Admin,Role.InscriptionService}, token)) | ||||||
|  |             return new UnauthorizedResponse<>(null); | ||||||
|  |  | ||||||
|     private Map<String, Object> requestWithoutPassword(InscriptionRequest inscriptionRequest) { |         InscriptionRequest toDelete = inscriptionServ.getById(id); | ||||||
|         Map<String, Object> toReturn = new HashMap<>(); |  | ||||||
|  |  | ||||||
|         toReturn.put("id", inscriptionRequest.getId()); |         if (toDelete == null) | ||||||
|         toReturn.put("lastName", inscriptionRequest.getLastName()); |             return new ResponseEntity<>(HttpStatus.BAD_REQUEST); | ||||||
|         toReturn.put("firstName", inscriptionRequest.getFirstName()); |  | ||||||
|         toReturn.put("address", inscriptionRequest.getAddress()); |  | ||||||
|         toReturn.put("email",inscriptionRequest.getEmail()); |  | ||||||
|         toReturn.put("birthDate", inscriptionRequest.getBirthDate()); |  | ||||||
|         toReturn.put("country", inscriptionRequest.getCountry()); |  | ||||||
|         toReturn.put("curriculum", inscriptionRequest.getCurriculumId()); |  | ||||||
|         toReturn.put("state", inscriptionRequest.getState()); |  | ||||||
|         toReturn.put("profilePictureUrl", inscriptionRequest.getProfilePicture()); |  | ||||||
|  |  | ||||||
|         return toReturn; |         inscriptionServ.delete(toDelete); | ||||||
|  |         return new ResponseEntity<>(HttpStatus.OK); | ||||||
|     } |     } | ||||||
|  |  | ||||||
| } | } | ||||||
|  | |||||||
| @ -7,8 +7,10 @@ import org.springframework.http.ResponseEntity; | |||||||
| import org.springframework.web.bind.annotation.*; | import org.springframework.web.bind.annotation.*; | ||||||
| import ovh.herisson.Clyde.Responses.UnauthorizedResponse; | import ovh.herisson.Clyde.Responses.UnauthorizedResponse; | ||||||
| import ovh.herisson.Clyde.Services.AuthenticatorService; | import ovh.herisson.Clyde.Services.AuthenticatorService; | ||||||
|  | import ovh.herisson.Clyde.Services.ProtectionService; | ||||||
| import ovh.herisson.Clyde.Tables.InscriptionRequest; | import ovh.herisson.Clyde.Tables.InscriptionRequest; | ||||||
| import java.util.Date; | import java.util.Date; | ||||||
|  | import java.util.Map; | ||||||
|  |  | ||||||
| @RestController | @RestController | ||||||
| @CrossOrigin(originPatterns = "*", allowCredentials = "true") | @CrossOrigin(originPatterns = "*", allowCredentials = "true") | ||||||
| @ -45,7 +47,10 @@ public class LoginController { | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     @PostMapping("/register") |     @PostMapping("/register") | ||||||
|     public ResponseEntity<InscriptionRequest> register(@RequestBody InscriptionRequest inscriptionRequest){ |     public ResponseEntity<Map<String,Object>> register(@RequestBody InscriptionRequest inscriptionRequest){ | ||||||
|         return new ResponseEntity<>(authServ.register(inscriptionRequest), HttpStatus.CREATED); |  | ||||||
|  |         InscriptionRequest returnedInscriptionRequest = authServ.register(inscriptionRequest); | ||||||
|  |  | ||||||
|  |         return new ResponseEntity<>(ProtectionService.requestWithoutPassword(returnedInscriptionRequest), HttpStatus.CREATED); | ||||||
|     } |     } | ||||||
| } | } | ||||||
|  | |||||||
| @ -22,16 +22,19 @@ public class MockController { | |||||||
|     public final CurriculumCourseService CurriculumCourseService; |     public final CurriculumCourseService CurriculumCourseService; | ||||||
|     public final CurriculumService curriculumService; |     public final CurriculumService curriculumService; | ||||||
|     public final CourseService courseService; |     public final CourseService courseService; | ||||||
|  |  | ||||||
|  |     public final InscriptionService inscriptionService; | ||||||
|     ArrayList<User> mockUsers; |     ArrayList<User> mockUsers; | ||||||
|  |  | ||||||
|  |  | ||||||
|     public MockController(UserRepository userRepo, TokenRepository tokenRepo, TokenService tokenService, CurriculumCourseService CurriculumCourseService, CurriculumService curriculumService, CourseService courseService){ |     public MockController(UserRepository userRepo, TokenRepository tokenRepo, TokenService tokenService, CurriculumCourseService CurriculumCourseService, CurriculumService curriculumService, CourseService courseService, InscriptionService inscriptionService){ | ||||||
|         this.tokenRepo = tokenRepo; |         this.tokenRepo = tokenRepo; | ||||||
|         this.userRepo = userRepo; |         this.userRepo = userRepo; | ||||||
|         this.tokenService = tokenService; |         this.tokenService = tokenService; | ||||||
|         this.CurriculumCourseService = CurriculumCourseService; |         this.CurriculumCourseService = CurriculumCourseService; | ||||||
|         this.curriculumService = curriculumService; |         this.curriculumService = curriculumService; | ||||||
|         this.courseService = courseService; |         this.courseService = courseService; | ||||||
|  |         this.inscriptionService = inscriptionService; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     /** Saves an example of each user type by : |     /** Saves an example of each user type by : | ||||||
| @ -87,6 +90,11 @@ public class MockController { | |||||||
|         CurriculumCourseService.save(new CurriculumCourse(chemistryBab1,commun)); |         CurriculumCourseService.save(new CurriculumCourse(chemistryBab1,commun)); | ||||||
|         CurriculumCourseService.save(new CurriculumCourse(chemistryBab1,chemistry1)); |         CurriculumCourseService.save(new CurriculumCourse(chemistryBab1,chemistry1)); | ||||||
|  |  | ||||||
|  |  | ||||||
|  |         InscriptionRequest inscriptionRequest = new InscriptionRequest("helen","prenom","non","helen@gmail.com","america",new Date(),(long) 1,RequestState.Refused,"yes.png","password"); | ||||||
|  |  | ||||||
|  |         inscriptionService.save(inscriptionRequest); | ||||||
|  |          | ||||||
|     } |     } | ||||||
| } | } | ||||||
|  |  | ||||||
|  | |||||||
| @ -121,4 +121,18 @@ public class UserController { | |||||||
|  |  | ||||||
|         return new ResponseEntity<>(ProtectionService.usersWithoutPasswords(students), HttpStatus.OK); |         return new ResponseEntity<>(ProtectionService.usersWithoutPasswords(students), HttpStatus.OK); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     @DeleteMapping("/user/{id}") | ||||||
|  |     public ResponseEntity<String> deleteStudent(@RequestHeader("Authorization") String token, @PathVariable Long id){ | ||||||
|  |         if (authServ.isNotIn(new Role[]{Role.Admin,Role.Secretary},token)) | ||||||
|  |             return new UnauthorizedResponse<>(null); | ||||||
|  |  | ||||||
|  |         User toDelete = userService.getUserById(id); | ||||||
|  |  | ||||||
|  |         if (toDelete == null) | ||||||
|  |             return new ResponseEntity<>(HttpStatus.BAD_REQUEST); | ||||||
|  |  | ||||||
|  |         userService.delete(toDelete); | ||||||
|  |         return new ResponseEntity<>(HttpStatus.OK); | ||||||
|  |     } | ||||||
| } | } | ||||||
| @ -1,7 +1,13 @@ | |||||||
| package ovh.herisson.Clyde.Repositories; | package ovh.herisson.Clyde.Repositories; | ||||||
|  |  | ||||||
|  | import org.springframework.data.jpa.repository.Query; | ||||||
| import org.springframework.data.repository.CrudRepository; | import org.springframework.data.repository.CrudRepository; | ||||||
|  | import ovh.herisson.Clyde.Tables.Curriculum; | ||||||
|  | import ovh.herisson.Clyde.Tables.User; | ||||||
| import ovh.herisson.Clyde.Tables.UserCurriculum; | import ovh.herisson.Clyde.Tables.UserCurriculum; | ||||||
|  |  | ||||||
| public interface UserCurriculumRepository extends CrudRepository<UserCurriculum, Long> { | public interface UserCurriculumRepository extends CrudRepository<UserCurriculum, Long> { | ||||||
|  |  | ||||||
|  |     @Query("select uc.curriculum from UserCurriculum uc where uc.user = ?1") | ||||||
|  |     Curriculum findByUser(User student); | ||||||
| } | } | ||||||
|  | |||||||
| @ -32,6 +32,7 @@ public class AuthenticatorService { | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     public InscriptionRequest register(InscriptionRequest inscriptionRequest) { |     public InscriptionRequest register(InscriptionRequest inscriptionRequest) { | ||||||
|  |         inscriptionRequest.setState(RequestState.Pending); | ||||||
|         return inscriptionService.save(inscriptionRequest); |         return inscriptionService.save(inscriptionRequest); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  | |||||||
| @ -77,4 +77,7 @@ public class CourseService { | |||||||
|         return true; |         return true; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     public void delete(Course course) { | ||||||
|  |         courseRepo.delete(course); | ||||||
|  |     } | ||||||
| } | } | ||||||
|  | |||||||
| @ -19,4 +19,7 @@ public class CurriculumService { | |||||||
|         return curriculumRepo.findById(id); |         return curriculumRepo.findById(id); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     public void delete(Curriculum curriculum) { | ||||||
|  |         curriculumRepo.delete(curriculum); | ||||||
|  |     } | ||||||
| } | } | ||||||
| @ -87,4 +87,8 @@ public class InscriptionService { | |||||||
|         save(inscrRequest); |         save(inscrRequest); | ||||||
|         return true; |         return true; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     public void delete(InscriptionRequest toDelete) { | ||||||
|  |         inscriptionRepo.delete(toDelete); | ||||||
|  |     } | ||||||
| } | } | ||||||
|  | |||||||
| @ -1,10 +1,12 @@ | |||||||
| package ovh.herisson.Clyde.Services; | package ovh.herisson.Clyde.Services; | ||||||
|  |  | ||||||
| import ovh.herisson.Clyde.Tables.Course; | import ovh.herisson.Clyde.Tables.Course; | ||||||
|  | import ovh.herisson.Clyde.Tables.InscriptionRequest; | ||||||
| import ovh.herisson.Clyde.Tables.User; | import ovh.herisson.Clyde.Tables.User; | ||||||
|  |  | ||||||
| import java.util.ArrayList; | import java.util.ArrayList; | ||||||
| import java.util.HashMap; | import java.util.HashMap; | ||||||
|  | import java.util.Map; | ||||||
|  |  | ||||||
| public class ProtectionService { | public class ProtectionService { | ||||||
|  |  | ||||||
| @ -13,6 +15,10 @@ public class ProtectionService { | |||||||
|      * @return all the user data without the password |      * @return all the user data without the password | ||||||
|      */ |      */ | ||||||
|     public static HashMap<String,Object> userWithoutPassword(User user){ |     public static HashMap<String,Object> userWithoutPassword(User user){ | ||||||
|  |  | ||||||
|  |         if (user ==null) | ||||||
|  |             return null; | ||||||
|  |  | ||||||
|         HashMap<String,Object> toReturn = new HashMap<>(); |         HashMap<String,Object> toReturn = new HashMap<>(); | ||||||
|  |  | ||||||
|         toReturn.put("regNo",user.getRegNo()); |         toReturn.put("regNo",user.getRegNo()); | ||||||
| @ -40,6 +46,9 @@ public class ProtectionService { | |||||||
|  |  | ||||||
|  |  | ||||||
|     public static HashMap<String,Object> courseWithoutPassword(Course course){ |     public static HashMap<String,Object> courseWithoutPassword(Course course){ | ||||||
|  |         if (course == null) | ||||||
|  |             return null; | ||||||
|  |  | ||||||
|         HashMap<String ,Object> toReturn = new HashMap<>(); |         HashMap<String ,Object> toReturn = new HashMap<>(); | ||||||
|  |  | ||||||
|         toReturn.put("courseId",course.getCourseID()); |         toReturn.put("courseId",course.getCourseID()); | ||||||
| @ -61,5 +70,36 @@ public class ProtectionService { | |||||||
|     } |     } | ||||||
|  |  | ||||||
|  |  | ||||||
|  |     public static Map<String, Object> requestWithoutPassword(InscriptionRequest inscriptionRequest) { | ||||||
|  |  | ||||||
|  |         if (inscriptionRequest == null) | ||||||
|  |             return null; | ||||||
|  |  | ||||||
|  |         Map<String, Object> toReturn = new HashMap<>(); | ||||||
|  |  | ||||||
|  |         toReturn.put("id", inscriptionRequest.getId()); | ||||||
|  |         toReturn.put("lastName", inscriptionRequest.getLastName()); | ||||||
|  |         toReturn.put("firstName", inscriptionRequest.getFirstName()); | ||||||
|  |         toReturn.put("address", inscriptionRequest.getAddress()); | ||||||
|  |         toReturn.put("email",inscriptionRequest.getEmail()); | ||||||
|  |         toReturn.put("birthDate", inscriptionRequest.getBirthDate()); | ||||||
|  |         toReturn.put("country", inscriptionRequest.getCountry()); | ||||||
|  |         toReturn.put("curriculum", inscriptionRequest.getCurriculumId()); | ||||||
|  |         toReturn.put("state", inscriptionRequest.getState()); | ||||||
|  |         toReturn.put("profilePictureUrl", inscriptionRequest.getProfilePicture()); | ||||||
|  |  | ||||||
|  |         return toReturn; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public static Iterable<Map<String ,Object>> requestsWithoutPasswords(Iterable<InscriptionRequest> inscriptionRequests){ | ||||||
|  |  | ||||||
|  |         ArrayList<Map<String,Object>> toReturn = new ArrayList<>(); | ||||||
|  |  | ||||||
|  |         for (InscriptionRequest i:inscriptionRequests){ | ||||||
|  |             toReturn.add(requestWithoutPassword(i)); | ||||||
|  |         } | ||||||
|  |         return toReturn; | ||||||
|  |     } | ||||||
|  |  | ||||||
| } | } | ||||||
|  |  | ||||||
|  | |||||||
| @ -0,0 +1,20 @@ | |||||||
|  | package ovh.herisson.Clyde.Services; | ||||||
|  |  | ||||||
|  | import org.springframework.stereotype.Service; | ||||||
|  | import ovh.herisson.Clyde.Repositories.UserCurriculumRepository; | ||||||
|  | import ovh.herisson.Clyde.Tables.Curriculum; | ||||||
|  | import ovh.herisson.Clyde.Tables.User; | ||||||
|  |  | ||||||
|  | @Service | ||||||
|  | public class UserCurriculumService { | ||||||
|  |  | ||||||
|  |     private final UserCurriculumRepository userCurriculumRepository; | ||||||
|  |  | ||||||
|  |     public UserCurriculumService(UserCurriculumRepository userCurriculumRepository) { | ||||||
|  |         this.userCurriculumRepository = userCurriculumRepository; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public Curriculum findByUser(User student){ | ||||||
|  |         return userCurriculumRepository.findByUser(student); | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -126,4 +126,8 @@ public class UserService { | |||||||
|     public User getUserById(long id) { |     public User getUserById(long id) { | ||||||
|         return userRepo.findById(id); |         return userRepo.findById(id); | ||||||
|     } |     } | ||||||
| } |  | ||||||
|  |     public void delete(User user) { | ||||||
|  |         userRepo.delete(user); | ||||||
|  |     } | ||||||
|  | } | ||||||
|  | |||||||
| @ -1,6 +1,8 @@ | |||||||
| package ovh.herisson.Clyde.Tables; | package ovh.herisson.Clyde.Tables; | ||||||
|  |  | ||||||
| import jakarta.persistence.*; | import jakarta.persistence.*; | ||||||
|  | import org.hibernate.annotations.OnDelete; | ||||||
|  | import org.hibernate.annotations.OnDeleteAction; | ||||||
|  |  | ||||||
| @Entity | @Entity | ||||||
| public class Course { | public class Course { | ||||||
| @ -11,6 +13,7 @@ public class Course { | |||||||
|     private String title; |     private String title; | ||||||
|  |  | ||||||
|     @ManyToOne(fetch = FetchType.EAGER) |     @ManyToOne(fetch = FetchType.EAGER) | ||||||
|  |     @OnDelete(action = OnDeleteAction.SET_NULL) | ||||||
|     @JoinColumn(name = "Users") |     @JoinColumn(name = "Users") | ||||||
|     private User owner; |     private User owner; | ||||||
|  |  | ||||||
|  | |||||||
| @ -1,6 +1,8 @@ | |||||||
| package ovh.herisson.Clyde.Tables; | package ovh.herisson.Clyde.Tables; | ||||||
|  |  | ||||||
| import jakarta.persistence.*; | import jakarta.persistence.*; | ||||||
|  | import org.hibernate.annotations.OnDelete; | ||||||
|  | import org.hibernate.annotations.OnDeleteAction; | ||||||
|  |  | ||||||
| @Entity | @Entity | ||||||
| public class CurriculumCourse { | public class CurriculumCourse { | ||||||
| @ -10,9 +12,11 @@ public class CurriculumCourse { | |||||||
|  |  | ||||||
|     @ManyToOne(fetch = FetchType.EAGER) |     @ManyToOne(fetch = FetchType.EAGER) | ||||||
|     @JoinColumn(name = "Curriculum") |     @JoinColumn(name = "Curriculum") | ||||||
|  |     @OnDelete(action = OnDeleteAction.CASCADE) | ||||||
|     private Curriculum curriculum; |     private Curriculum curriculum; | ||||||
|  |  | ||||||
|     @ManyToOne(fetch = FetchType.EAGER) |     @ManyToOne(fetch = FetchType.EAGER) | ||||||
|  |     @OnDelete(action = OnDeleteAction.CASCADE) | ||||||
|     @JoinColumn(name = "Course") |     @JoinColumn(name = "Course") | ||||||
|     private Course course; |     private Course course; | ||||||
|  |  | ||||||
|  | |||||||
| @ -1,6 +1,8 @@ | |||||||
| package ovh.herisson.Clyde.Tables; | package ovh.herisson.Clyde.Tables; | ||||||
|  |  | ||||||
| import jakarta.persistence.*; | import jakarta.persistence.*; | ||||||
|  | import org.hibernate.annotations.OnDelete; | ||||||
|  | import org.hibernate.annotations.OnDeleteAction; | ||||||
|  |  | ||||||
| @Entity | @Entity | ||||||
| public class ReInscriptionRequest { | public class ReInscriptionRequest { | ||||||
| @ -10,10 +12,12 @@ public class ReInscriptionRequest { | |||||||
|  |  | ||||||
|     @ManyToOne |     @ManyToOne | ||||||
|     @JoinColumn(name = "Users") |     @JoinColumn(name = "Users") | ||||||
|  |     @OnDelete(action = OnDeleteAction.CASCADE) | ||||||
|     private User user; |     private User user; | ||||||
|  |  | ||||||
|     @ManyToOne |     @ManyToOne | ||||||
|     @JoinColumn(name = "Curriculum") |     @JoinColumn(name = "Curriculum") | ||||||
|  |     @OnDelete(action = OnDeleteAction.CASCADE) | ||||||
|     private Curriculum newCurriculum; |     private Curriculum newCurriculum; | ||||||
|     private RequestState state; |     private RequestState state; | ||||||
|  |  | ||||||
|  | |||||||
| @ -1,6 +1,8 @@ | |||||||
| package ovh.herisson.Clyde.Tables; | package ovh.herisson.Clyde.Tables; | ||||||
|  |  | ||||||
| import jakarta.persistence.*; | import jakarta.persistence.*; | ||||||
|  | import org.hibernate.annotations.OnDelete; | ||||||
|  | import org.hibernate.annotations.OnDeleteAction; | ||||||
|  |  | ||||||
| @Entity | @Entity | ||||||
| public class TeacherCourse { | public class TeacherCourse { | ||||||
| @ -9,11 +11,13 @@ public class TeacherCourse { | |||||||
|     private int id; |     private int id; | ||||||
|  |  | ||||||
|     @ManyToOne(fetch = FetchType.EAGER) |     @ManyToOne(fetch = FetchType.EAGER) | ||||||
|  |     @OnDelete(action = OnDeleteAction.CASCADE) | ||||||
|     @JoinColumn(name = "Users") |     @JoinColumn(name = "Users") | ||||||
|     private User user; |     private User user; | ||||||
|  |  | ||||||
|  |  | ||||||
|     @ManyToOne(fetch = FetchType.EAGER) |     @ManyToOne(fetch = FetchType.EAGER) | ||||||
|  |     @OnDelete(action = OnDeleteAction.CASCADE) | ||||||
|     @JoinColumn(name = "Course") |     @JoinColumn(name = "Course") | ||||||
|     private Course course; |     private Course course; | ||||||
|  |  | ||||||
|  | |||||||
| @ -1,6 +1,8 @@ | |||||||
| package ovh.herisson.Clyde.Tables; | package ovh.herisson.Clyde.Tables; | ||||||
|  |  | ||||||
| import jakarta.persistence.*; | import jakarta.persistence.*; | ||||||
|  | import org.hibernate.annotations.OnDelete; | ||||||
|  | import org.hibernate.annotations.OnDeleteAction; | ||||||
|  |  | ||||||
| import java.util.Date; | import java.util.Date; | ||||||
|  |  | ||||||
| @ -11,6 +13,7 @@ public class Token { | |||||||
|     private int id; |     private int id; | ||||||
|  |  | ||||||
|     @ManyToOne(fetch = FetchType.EAGER) |     @ManyToOne(fetch = FetchType.EAGER) | ||||||
|  |     @OnDelete(action = OnDeleteAction.CASCADE) | ||||||
|     @JoinColumn(name ="Users") |     @JoinColumn(name ="Users") | ||||||
|     private User user; |     private User user; | ||||||
|     private String token; |     private String token; | ||||||
|  | |||||||
| @ -1,6 +1,8 @@ | |||||||
| package ovh.herisson.Clyde.Tables; | package ovh.herisson.Clyde.Tables; | ||||||
|  |  | ||||||
| import jakarta.persistence.*; | import jakarta.persistence.*; | ||||||
|  | import org.hibernate.annotations.OnDelete; | ||||||
|  | import org.hibernate.annotations.OnDeleteAction; | ||||||
|  |  | ||||||
| @Entity | @Entity | ||||||
| public class UserCurriculum { | public class UserCurriculum { | ||||||
| @ -10,11 +12,13 @@ public class UserCurriculum { | |||||||
|  |  | ||||||
|     //Un étudiant peut avoir plusieurs curriculums |     //Un étudiant peut avoir plusieurs curriculums | ||||||
|     @ManyToOne(fetch = FetchType.EAGER) |     @ManyToOne(fetch = FetchType.EAGER) | ||||||
|  |     @OnDelete(action = OnDeleteAction.CASCADE) | ||||||
|     @JoinColumn(name = "Users") |     @JoinColumn(name = "Users") | ||||||
|     private User user; |     private User user; | ||||||
|  |  | ||||||
|     @OneToOne(fetch = FetchType.EAGER) |     @ManyToOne(fetch = FetchType.EAGER) | ||||||
|     @JoinColumn(name = "Curriculum") |     @JoinColumn(name = "Curriculum") | ||||||
|  |     @OnDelete(action = OnDeleteAction.CASCADE) | ||||||
|     private Curriculum curriculum; |     private Curriculum curriculum; | ||||||
|  |  | ||||||
|     public UserCurriculum(User user, Curriculum curriculum){ |     public UserCurriculum(User user, Curriculum curriculum){ | ||||||
|  | |||||||
		Reference in New Issue
	
	Block a user