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.Role; | ||||
| import ovh.herisson.Clyde.Tables.User; | ||||
|  | ||||
| import java.util.HashMap; | ||||
| import java.util.Map; | ||||
|  | ||||
| @ -119,4 +118,20 @@ public class CourseController { | ||||
|  | ||||
|         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.web.bind.annotation.*; | ||||
| import ovh.herisson.Clyde.Responses.UnauthorizedResponse; | ||||
| import ovh.herisson.Clyde.Services.AuthenticatorService; | ||||
| import ovh.herisson.Clyde.Services.CurriculumCourseService; | ||||
| import ovh.herisson.Clyde.Services.CurriculumService; | ||||
| import ovh.herisson.Clyde.Services.*; | ||||
| import ovh.herisson.Clyde.Tables.Curriculum; | ||||
| import ovh.herisson.Clyde.Tables.Role; | ||||
|  | ||||
| @ -21,11 +19,13 @@ public class CurriculumController { | ||||
|     private final CurriculumService curriculumServ; | ||||
|     private final AuthenticatorService authServ; | ||||
|  | ||||
|     private final UserCurriculumService userCurriculumServ; | ||||
|     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.authServ = authServ; | ||||
|         this.userCurriculumServ = userCurriculumServ; | ||||
|         this.curriculumCourseServ = curriculumCourseServ; | ||||
|     } | ||||
|  | ||||
| @ -39,6 +39,19 @@ public class CurriculumController { | ||||
|         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") | ||||
|     public ResponseEntity<Iterable<Map<String, Object>>> findAllIndDepth(){ | ||||
|         return new ResponseEntity<>(curriculumCourseServ.getAllDepthCurriculum(),HttpStatus.OK); | ||||
| @ -67,4 +80,18 @@ public class CurriculumController { | ||||
|  | ||||
|         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.Services.AuthenticatorService; | ||||
| import ovh.herisson.Clyde.Services.InscriptionService; | ||||
| import ovh.herisson.Clyde.Services.ProtectionService; | ||||
| import ovh.herisson.Clyde.Tables.InscriptionRequest; | ||||
| import ovh.herisson.Clyde.Tables.RequestState; | ||||
| import ovh.herisson.Clyde.Tables.Role; | ||||
| import java.util.ArrayList; | ||||
| import java.util.HashMap; | ||||
| import java.util.Map; | ||||
|  | ||||
| @RestController | ||||
| @ -34,13 +33,8 @@ public class InscriptionController { | ||||
|             return new UnauthorizedResponse<>(null); | ||||
|  | ||||
|         Iterable<InscriptionRequest> inscriptionRequests = inscriptionServ.getAll(); | ||||
|         ArrayList<Map<String,Object>> toReturn = new ArrayList<>(); | ||||
|  | ||||
|         for (InscriptionRequest i:inscriptionRequests){ | ||||
|             toReturn.add(requestWithoutPassword(i)); | ||||
|         } | ||||
|  | ||||
|         return new ResponseEntity<>(toReturn, HttpStatus.OK); | ||||
|         return new ResponseEntity<>(ProtectionService.requestsWithoutPasswords(inscriptionRequests), HttpStatus.OK); | ||||
|     } | ||||
|  | ||||
|  | ||||
| @ -55,38 +49,35 @@ public class InscriptionController { | ||||
|         if (foundInscriptionRequest == null) | ||||
|             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}") | ||||
|     public ResponseEntity<InscriptionRequest> changeRequestState(@PathVariable long id, | ||||
|                                                                  @RequestHeader("Authorization") String token, | ||||
|                                                                  @RequestBody RequestState requestState) | ||||
|                                                                  @RequestBody RequestState state) | ||||
|     { | ||||
|  | ||||
|         if (authServ.isNotIn(new Role[]{Role.InscriptionService,Role.Admin},token)) | ||||
|             return new UnauthorizedResponse<>(null); | ||||
|  | ||||
|         if (!inscriptionServ.modifyState(id, requestState)) | ||||
|         if (!inscriptionServ.modifyState(id, state)) | ||||
|             return new ResponseEntity<>(HttpStatus.BAD_REQUEST); | ||||
|  | ||||
|         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) { | ||||
|         Map<String, Object> toReturn = new HashMap<>(); | ||||
|         InscriptionRequest toDelete = inscriptionServ.getById(id); | ||||
|  | ||||
|         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()); | ||||
|         if (toDelete == null) | ||||
|             return new ResponseEntity<>(HttpStatus.BAD_REQUEST); | ||||
|  | ||||
|         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 ovh.herisson.Clyde.Responses.UnauthorizedResponse; | ||||
| import ovh.herisson.Clyde.Services.AuthenticatorService; | ||||
| import ovh.herisson.Clyde.Services.ProtectionService; | ||||
| import ovh.herisson.Clyde.Tables.InscriptionRequest; | ||||
| import java.util.Date; | ||||
| import java.util.Map; | ||||
|  | ||||
| @RestController | ||||
| @CrossOrigin(originPatterns = "*", allowCredentials = "true") | ||||
| @ -45,7 +47,10 @@ public class LoginController { | ||||
|     } | ||||
|  | ||||
|     @PostMapping("/register") | ||||
|     public ResponseEntity<InscriptionRequest> register(@RequestBody InscriptionRequest inscriptionRequest){ | ||||
|         return new ResponseEntity<>(authServ.register(inscriptionRequest), HttpStatus.CREATED); | ||||
|     public ResponseEntity<Map<String,Object>> register(@RequestBody InscriptionRequest inscriptionRequest){ | ||||
|  | ||||
|         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 CurriculumService curriculumService; | ||||
|     public final CourseService courseService; | ||||
|  | ||||
|     public final InscriptionService inscriptionService; | ||||
|     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.userRepo = userRepo; | ||||
|         this.tokenService = tokenService; | ||||
|         this.CurriculumCourseService = CurriculumCourseService; | ||||
|         this.curriculumService = curriculumService; | ||||
|         this.courseService = courseService; | ||||
|         this.inscriptionService = inscriptionService; | ||||
|     } | ||||
|  | ||||
|     /** 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,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); | ||||
|     } | ||||
|  | ||||
|     @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; | ||||
|  | ||||
| import org.springframework.data.jpa.repository.Query; | ||||
| import org.springframework.data.repository.CrudRepository; | ||||
| import ovh.herisson.Clyde.Tables.Curriculum; | ||||
| import ovh.herisson.Clyde.Tables.User; | ||||
| import ovh.herisson.Clyde.Tables.UserCurriculum; | ||||
|  | ||||
| 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) { | ||||
|         inscriptionRequest.setState(RequestState.Pending); | ||||
|         return inscriptionService.save(inscriptionRequest); | ||||
|     } | ||||
|  | ||||
|  | ||||
| @ -77,4 +77,7 @@ public class CourseService { | ||||
|         return true; | ||||
|     } | ||||
|  | ||||
|     public void delete(Course course) { | ||||
|         courseRepo.delete(course); | ||||
|     } | ||||
| } | ||||
|  | ||||
| @ -19,4 +19,7 @@ public class CurriculumService { | ||||
|         return curriculumRepo.findById(id); | ||||
|     } | ||||
|  | ||||
|     public void delete(Curriculum curriculum) { | ||||
|         curriculumRepo.delete(curriculum); | ||||
|     } | ||||
| } | ||||
| @ -87,4 +87,8 @@ public class InscriptionService { | ||||
|         save(inscrRequest); | ||||
|         return true; | ||||
|     } | ||||
|  | ||||
|     public void delete(InscriptionRequest toDelete) { | ||||
|         inscriptionRepo.delete(toDelete); | ||||
|     } | ||||
| } | ||||
|  | ||||
| @ -1,10 +1,12 @@ | ||||
| package ovh.herisson.Clyde.Services; | ||||
|  | ||||
| import ovh.herisson.Clyde.Tables.Course; | ||||
| import ovh.herisson.Clyde.Tables.InscriptionRequest; | ||||
| import ovh.herisson.Clyde.Tables.User; | ||||
|  | ||||
| import java.util.ArrayList; | ||||
| import java.util.HashMap; | ||||
| import java.util.Map; | ||||
|  | ||||
| public class ProtectionService { | ||||
|  | ||||
| @ -13,6 +15,10 @@ public class ProtectionService { | ||||
|      * @return all the user data without the password | ||||
|      */ | ||||
|     public static HashMap<String,Object> userWithoutPassword(User user){ | ||||
|  | ||||
|         if (user ==null) | ||||
|             return null; | ||||
|  | ||||
|         HashMap<String,Object> toReturn = new HashMap<>(); | ||||
|  | ||||
|         toReturn.put("regNo",user.getRegNo()); | ||||
| @ -40,6 +46,9 @@ public class ProtectionService { | ||||
|  | ||||
|  | ||||
|     public static HashMap<String,Object> courseWithoutPassword(Course course){ | ||||
|         if (course == null) | ||||
|             return null; | ||||
|  | ||||
|         HashMap<String ,Object> toReturn = new HashMap<>(); | ||||
|  | ||||
|         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) { | ||||
|         return userRepo.findById(id); | ||||
|     } | ||||
| } | ||||
|  | ||||
|     public void delete(User user) { | ||||
|         userRepo.delete(user); | ||||
|     } | ||||
| } | ||||
|  | ||||
| @ -1,6 +1,8 @@ | ||||
| package ovh.herisson.Clyde.Tables; | ||||
|  | ||||
| import jakarta.persistence.*; | ||||
| import org.hibernate.annotations.OnDelete; | ||||
| import org.hibernate.annotations.OnDeleteAction; | ||||
|  | ||||
| @Entity | ||||
| public class Course { | ||||
| @ -11,6 +13,7 @@ public class Course { | ||||
|     private String title; | ||||
|  | ||||
|     @ManyToOne(fetch = FetchType.EAGER) | ||||
|     @OnDelete(action = OnDeleteAction.SET_NULL) | ||||
|     @JoinColumn(name = "Users") | ||||
|     private User owner; | ||||
|  | ||||
|  | ||||
| @ -1,6 +1,8 @@ | ||||
| package ovh.herisson.Clyde.Tables; | ||||
|  | ||||
| import jakarta.persistence.*; | ||||
| import org.hibernate.annotations.OnDelete; | ||||
| import org.hibernate.annotations.OnDeleteAction; | ||||
|  | ||||
| @Entity | ||||
| public class CurriculumCourse { | ||||
| @ -10,9 +12,11 @@ public class CurriculumCourse { | ||||
|  | ||||
|     @ManyToOne(fetch = FetchType.EAGER) | ||||
|     @JoinColumn(name = "Curriculum") | ||||
|     @OnDelete(action = OnDeleteAction.CASCADE) | ||||
|     private Curriculum curriculum; | ||||
|  | ||||
|     @ManyToOne(fetch = FetchType.EAGER) | ||||
|     @OnDelete(action = OnDeleteAction.CASCADE) | ||||
|     @JoinColumn(name = "Course") | ||||
|     private Course course; | ||||
|  | ||||
|  | ||||
| @ -1,6 +1,8 @@ | ||||
| package ovh.herisson.Clyde.Tables; | ||||
|  | ||||
| import jakarta.persistence.*; | ||||
| import org.hibernate.annotations.OnDelete; | ||||
| import org.hibernate.annotations.OnDeleteAction; | ||||
|  | ||||
| @Entity | ||||
| public class ReInscriptionRequest { | ||||
| @ -10,10 +12,12 @@ public class ReInscriptionRequest { | ||||
|  | ||||
|     @ManyToOne | ||||
|     @JoinColumn(name = "Users") | ||||
|     @OnDelete(action = OnDeleteAction.CASCADE) | ||||
|     private User user; | ||||
|  | ||||
|     @ManyToOne | ||||
|     @JoinColumn(name = "Curriculum") | ||||
|     @OnDelete(action = OnDeleteAction.CASCADE) | ||||
|     private Curriculum newCurriculum; | ||||
|     private RequestState state; | ||||
|  | ||||
|  | ||||
| @ -1,6 +1,8 @@ | ||||
| package ovh.herisson.Clyde.Tables; | ||||
|  | ||||
| import jakarta.persistence.*; | ||||
| import org.hibernate.annotations.OnDelete; | ||||
| import org.hibernate.annotations.OnDeleteAction; | ||||
|  | ||||
| @Entity | ||||
| public class TeacherCourse { | ||||
| @ -9,11 +11,13 @@ public class TeacherCourse { | ||||
|     private int id; | ||||
|  | ||||
|     @ManyToOne(fetch = FetchType.EAGER) | ||||
|     @OnDelete(action = OnDeleteAction.CASCADE) | ||||
|     @JoinColumn(name = "Users") | ||||
|     private User user; | ||||
|  | ||||
|  | ||||
|     @ManyToOne(fetch = FetchType.EAGER) | ||||
|     @OnDelete(action = OnDeleteAction.CASCADE) | ||||
|     @JoinColumn(name = "Course") | ||||
|     private Course course; | ||||
|  | ||||
|  | ||||
| @ -1,6 +1,8 @@ | ||||
| package ovh.herisson.Clyde.Tables; | ||||
|  | ||||
| import jakarta.persistence.*; | ||||
| import org.hibernate.annotations.OnDelete; | ||||
| import org.hibernate.annotations.OnDeleteAction; | ||||
|  | ||||
| import java.util.Date; | ||||
|  | ||||
| @ -11,6 +13,7 @@ public class Token { | ||||
|     private int id; | ||||
|  | ||||
|     @ManyToOne(fetch = FetchType.EAGER) | ||||
|     @OnDelete(action = OnDeleteAction.CASCADE) | ||||
|     @JoinColumn(name ="Users") | ||||
|     private User user; | ||||
|     private String token; | ||||
|  | ||||
| @ -1,6 +1,8 @@ | ||||
| package ovh.herisson.Clyde.Tables; | ||||
|  | ||||
| import jakarta.persistence.*; | ||||
| import org.hibernate.annotations.OnDelete; | ||||
| import org.hibernate.annotations.OnDeleteAction; | ||||
|  | ||||
| @Entity | ||||
| public class UserCurriculum { | ||||
| @ -10,11 +12,13 @@ public class UserCurriculum { | ||||
|  | ||||
|     //Un étudiant peut avoir plusieurs curriculums | ||||
|     @ManyToOne(fetch = FetchType.EAGER) | ||||
|     @OnDelete(action = OnDeleteAction.CASCADE) | ||||
|     @JoinColumn(name = "Users") | ||||
|     private User user; | ||||
|  | ||||
|     @OneToOne(fetch = FetchType.EAGER) | ||||
|     @ManyToOne(fetch = FetchType.EAGER) | ||||
|     @JoinColumn(name = "Curriculum") | ||||
|     @OnDelete(action = OnDeleteAction.CASCADE) | ||||
|     private Curriculum curriculum; | ||||
|  | ||||
|     public UserCurriculum(User user, Curriculum curriculum){ | ||||
|  | ||||
		Reference in New Issue
	
	Block a user