diff --git a/backend/src/main/java/ovh/herisson/Clyde/EndPoints/LoginController.java b/backend/src/main/java/ovh/herisson/Clyde/EndPoints/LoginController.java index e43f0a1..5c04ebe 100644 --- a/backend/src/main/java/ovh/herisson/Clyde/EndPoints/LoginController.java +++ b/backend/src/main/java/ovh/herisson/Clyde/EndPoints/LoginController.java @@ -1,10 +1,15 @@ package ovh.herisson.Clyde.EndPoints; import com.fasterxml.jackson.annotation.JsonFormat; +import jakarta.persistence.Column; import org.springframework.http.HttpHeaders; 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.Tables.Cursus; +import ovh.herisson.Clyde.Tables.CursusType; +import ovh.herisson.Clyde.Tables.InscriptionRequest; +import ovh.herisson.Clyde.Tables.User; import java.util.Date; @@ -40,6 +45,24 @@ public class LoginController { responseHeaders.set("Set-Cookie",String.format("session_token=%s",sessionToken)); return ResponseEntity.ok().headers(responseHeaders).build(); } + + @PostMapping("/register") + public ResponseEntity register(@RequestBody InscriptionRequest inscriptionRequest){ + + + authServ.register(inscriptionRequest); + + + + String sessionToken = authServ.login(); + if (sessionToken == null){ + return new UnauthorizedResponse<>("Identifier or Password incorrect"); + } + + HttpHeaders responseHeaders = new HttpHeaders(); + responseHeaders.set("Set-Cookie",String.format("session_token=%s",sessionToken)); + return ResponseEntity.ok().headers(responseHeaders).build(); + } } diff --git a/backend/src/main/java/ovh/herisson/Clyde/Repositories/InscriptionRepository.java b/backend/src/main/java/ovh/herisson/Clyde/Repositories/InscriptionRepository.java new file mode 100644 index 0000000..9f09b4b --- /dev/null +++ b/backend/src/main/java/ovh/herisson/Clyde/Repositories/InscriptionRepository.java @@ -0,0 +1,7 @@ +package ovh.herisson.Clyde.Repositories; + +import org.springframework.data.repository.CrudRepository; +import ovh.herisson.Clyde.Tables.InscriptionRequest; + +public interface InscriptionRepository extends CrudRepository { +} diff --git a/backend/src/main/java/ovh/herisson/Clyde/Services/AuthenticatorService.java b/backend/src/main/java/ovh/herisson/Clyde/Services/AuthenticatorService.java index 4cd1939..13d0fce 100644 --- a/backend/src/main/java/ovh/herisson/Clyde/Services/AuthenticatorService.java +++ b/backend/src/main/java/ovh/herisson/Clyde/Services/AuthenticatorService.java @@ -1,6 +1,8 @@ package ovh.herisson.Clyde.Services; import org.springframework.stereotype.Service; +import ovh.herisson.Clyde.EndPoints.LoginController; +import ovh.herisson.Clyde.Tables.InscriptionRequest; import ovh.herisson.Clyde.Tables.Token; import ovh.herisson.Clyde.Tables.User; @@ -30,4 +32,9 @@ public class AuthenticatorService { tokenService.saveToken(new Token(user, token,expirationDate)); return token; } + + public void register(InscriptionRequest inscriptionRequest) { + + + } } diff --git a/backend/src/main/java/ovh/herisson/Clyde/Services/InscriptionService.java b/backend/src/main/java/ovh/herisson/Clyde/Services/InscriptionService.java new file mode 100644 index 0000000..b0739d1 --- /dev/null +++ b/backend/src/main/java/ovh/herisson/Clyde/Services/InscriptionService.java @@ -0,0 +1,23 @@ +package ovh.herisson.Clyde.Services; + +import org.springframework.stereotype.Service; +import ovh.herisson.Clyde.Repositories.InscriptionRepository; +import ovh.herisson.Clyde.Tables.InscriptionRequest; + +@Service +public class InscriptionService { + + InscriptionRepository incriptionRepo; + public void save(InscriptionRequest inscriptionRequest){ + incriptionRepo.save(inscriptionRequest); + } + + public InscriptionService(InscriptionRepository inscriptionRepo){ + this.incriptionRepo = inscriptionRepo; + } + + //todo return sans le mdp + public InscriptionRequest getById(int id){ + return null; + } +} \ No newline at end of file diff --git a/backend/src/main/java/ovh/herisson/Clyde/Tables/Cursus.java b/backend/src/main/java/ovh/herisson/Clyde/Tables/Cursus.java index 5167197..172ec7d 100644 --- a/backend/src/main/java/ovh/herisson/Clyde/Tables/Cursus.java +++ b/backend/src/main/java/ovh/herisson/Clyde/Tables/Cursus.java @@ -13,6 +13,12 @@ public class Cursus { private int year; private String option; + public static Cursus infoBab1 = new Cursus(1,"info"); + + public static Cursus chemistryBab1 = new Cursus(1,"chemistry"); + + public static Cursus psychologyBab1 = new Cursus(1,"psychology"); + public Cursus(int year, String option){ this.year = year; this.option = option; diff --git a/backend/src/main/java/ovh/herisson/Clyde/Tables/CursusType.java b/backend/src/main/java/ovh/herisson/Clyde/Tables/CursusType.java new file mode 100644 index 0000000..5e9c50f --- /dev/null +++ b/backend/src/main/java/ovh/herisson/Clyde/Tables/CursusType.java @@ -0,0 +1,8 @@ +package ovh.herisson.Clyde.Tables; + +public enum CursusType { + + infoBab1, + chemistryBab1, + psychologyBab1; +} diff --git a/backend/src/main/java/ovh/herisson/Clyde/Tables/InscriptionRequest.java b/backend/src/main/java/ovh/herisson/Clyde/Tables/InscriptionRequest.java index 2e5bf0d..9b6ef95 100644 --- a/backend/src/main/java/ovh/herisson/Clyde/Tables/InscriptionRequest.java +++ b/backend/src/main/java/ovh/herisson/Clyde/Tables/InscriptionRequest.java @@ -9,7 +9,7 @@ public class InscriptionRequest { private int id; private String firstName; private String lastName; - private String adress; + private String address; private String email; private String country; private Date birthDate; @@ -19,15 +19,19 @@ public class InscriptionRequest { private Cursus cursus; private RequestState state; private String profilePicture; + + private String password; public InscriptionRequest(){} - public InscriptionRequest(String lastName, String firstName, String adress, String email, String country, Date birthDate, RequestState state, String profilePicture){ + public InscriptionRequest(String lastName, String firstName, String address, String email, String country, Date birthDate, RequestState state, String profilePicture, String password){ this.lastName = lastName; this.firstName = firstName; - this.adress = adress; + this.address = address; this.email = email; this.country = country; this.birthDate = birthDate; this.state = state; + this.profilePicture = profilePicture; + this.password = password; } public int getId() { @@ -50,12 +54,12 @@ public class InscriptionRequest { this.lastName = lastName; } - public String getAdress() { - return adress; + public String getAddress() { + return address; } - public void setAdress(String adress) { - this.adress = adress; + public void setAddress(String address) { + this.address = address; } public String getEmail() { diff --git a/backend/src/main/java/ovh/herisson/Clyde/Tables/Secretary.java b/backend/src/main/java/ovh/herisson/Clyde/Tables/Secretary.java deleted file mode 100644 index cc34841..0000000 --- a/backend/src/main/java/ovh/herisson/Clyde/Tables/Secretary.java +++ /dev/null @@ -1,42 +0,0 @@ -package ovh.herisson.Clyde.Tables; - -import jakarta.persistence.*; - -@Entity -public class Secretary { - @Id - @GeneratedValue(strategy = GenerationType.AUTO) - private int id; - - @OneToOne(fetch = FetchType.LAZY) - @JoinColumn(name = "Users") - private User user; - private String faculty; - - public Secretary(User user, String faculty){ - this.user = user; - this.faculty = faculty; - } - - public Secretary() {} - - public int getId() { - return id; - } - - public User getUser() { - return user; - } - - public void setUser(User user) { - this.user = user; - } - - public String getFaculty() { - return faculty; - } - - public void setFaculty(String faculty) { - this.faculty = faculty; - } -} diff --git a/backend/src/main/java/ovh/herisson/Clyde/Tables/UserCursus.java b/backend/src/main/java/ovh/herisson/Clyde/Tables/UserCursus.java index a5c5153..6590b2d 100644 --- a/backend/src/main/java/ovh/herisson/Clyde/Tables/UserCursus.java +++ b/backend/src/main/java/ovh/herisson/Clyde/Tables/UserCursus.java @@ -9,11 +9,11 @@ public class UserCursus { private int id; //Un étudiant peut avoir plusieurs cursus - @ManyToOne(fetch = FetchType.LAZY) + @ManyToOne(fetch = FetchType.EAGER) @JoinColumn(name = "Users") private User user; - @OneToOne(fetch = FetchType.LAZY) + @OneToOne(fetch = FetchType.EAGER) @JoinColumn(name = "Cursus") private Cursus cursus;