From 69c3a3b965225b7cc399fe2977814dd34a386e56 Mon Sep 17 00:00:00 2001 From: LeoMoulin Date: Thu, 29 Feb 2024 20:08:12 +0100 Subject: [PATCH 1/9] =?UTF-8?q?Impl=C3=A9mentation=20des=20diff=C3=A9rente?= =?UTF-8?q?s=20classes=20repr=C3=A9sentants=20les=20tables?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/build.gradle.kts | 1 + .../ovh/herisson/Clyde/Tables/Course.java | 16 +++++++++ .../ovh/herisson/Clyde/Tables/Cursus.java | 16 +++++++++ .../herisson/Clyde/Tables/CursusCourse.java | 16 +++++++++ .../java/ovh/herisson/Clyde/Tables/Role.java | 7 ++++ .../ovh/herisson/Clyde/Tables/Secretary.java | 15 ++++++++ .../Clyde/Tables/TeacherGivenCourse.java | 15 ++++++++ .../Clyde/Tables/TeacherOwnerCourse.java | 16 +++++++++ .../java/ovh/herisson/Clyde/Tables/User.java | 35 +++++++++++++++++++ .../ovh/herisson/Clyde/Tables/UserCursus.java | 13 +++++++ 10 files changed, 150 insertions(+) create mode 100644 backend/src/main/java/ovh/herisson/Clyde/Tables/Course.java create mode 100644 backend/src/main/java/ovh/herisson/Clyde/Tables/Cursus.java create mode 100644 backend/src/main/java/ovh/herisson/Clyde/Tables/CursusCourse.java create mode 100644 backend/src/main/java/ovh/herisson/Clyde/Tables/Role.java create mode 100644 backend/src/main/java/ovh/herisson/Clyde/Tables/Secretary.java create mode 100644 backend/src/main/java/ovh/herisson/Clyde/Tables/TeacherGivenCourse.java create mode 100644 backend/src/main/java/ovh/herisson/Clyde/Tables/TeacherOwnerCourse.java create mode 100644 backend/src/main/java/ovh/herisson/Clyde/Tables/User.java create mode 100644 backend/src/main/java/ovh/herisson/Clyde/Tables/UserCursus.java diff --git a/backend/build.gradle.kts b/backend/build.gradle.kts index 91c7679..85fae7b 100644 --- a/backend/build.gradle.kts +++ b/backend/build.gradle.kts @@ -19,6 +19,7 @@ dependencies { implementation("org.springframework.boot:spring-boot-starter-jdbc") implementation("org.springframework.boot:spring-boot-starter-mail") implementation("org.springframework.boot:spring-boot-starter-web") + implementation("org.springframework.boot:spring-boot-starter-data-jpa") // implementation("org.springframework.session:spring-session-jdbc") developmentOnly("org.springframework.boot:spring-boot-devtools") developmentOnly("org.springframework.boot:spring-boot-docker-compose") diff --git a/backend/src/main/java/ovh/herisson/Clyde/Tables/Course.java b/backend/src/main/java/ovh/herisson/Clyde/Tables/Course.java new file mode 100644 index 0000000..b5bdf00 --- /dev/null +++ b/backend/src/main/java/ovh/herisson/Clyde/Tables/Course.java @@ -0,0 +1,16 @@ +package ovh.herisson.Clyde.Tables; + +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; + +@Entity +public class Course { + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + private int CourseID; + private int Credits; + private String Title; + private String Faculty; +} diff --git a/backend/src/main/java/ovh/herisson/Clyde/Tables/Cursus.java b/backend/src/main/java/ovh/herisson/Clyde/Tables/Cursus.java new file mode 100644 index 0000000..c909f9e --- /dev/null +++ b/backend/src/main/java/ovh/herisson/Clyde/Tables/Cursus.java @@ -0,0 +1,16 @@ +package ovh.herisson.Clyde.Tables; + +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; + +@Entity +public class Cursus { + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + private int CursusId; + private int Year; + private String Option; + +} diff --git a/backend/src/main/java/ovh/herisson/Clyde/Tables/CursusCourse.java b/backend/src/main/java/ovh/herisson/Clyde/Tables/CursusCourse.java new file mode 100644 index 0000000..c8a669f --- /dev/null +++ b/backend/src/main/java/ovh/herisson/Clyde/Tables/CursusCourse.java @@ -0,0 +1,16 @@ +package ovh.herisson.Clyde.Tables; + +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; + +@Entity +public class CursusCourse { + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + private int id; + private int CursusId; + private int CourseId; + +} diff --git a/backend/src/main/java/ovh/herisson/Clyde/Tables/Role.java b/backend/src/main/java/ovh/herisson/Clyde/Tables/Role.java new file mode 100644 index 0000000..d9ccb94 --- /dev/null +++ b/backend/src/main/java/ovh/herisson/Clyde/Tables/Role.java @@ -0,0 +1,7 @@ +package ovh.herisson.Clyde.Tables; + +public enum Role { + Teacher, + Student; + +} diff --git a/backend/src/main/java/ovh/herisson/Clyde/Tables/Secretary.java b/backend/src/main/java/ovh/herisson/Clyde/Tables/Secretary.java new file mode 100644 index 0000000..8c2220b --- /dev/null +++ b/backend/src/main/java/ovh/herisson/Clyde/Tables/Secretary.java @@ -0,0 +1,15 @@ +package ovh.herisson.Clyde.Tables; + +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; + +@Entity +public class Secretary { + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + private int id; + private int RegNo; + private String Faculty; +} diff --git a/backend/src/main/java/ovh/herisson/Clyde/Tables/TeacherGivenCourse.java b/backend/src/main/java/ovh/herisson/Clyde/Tables/TeacherGivenCourse.java new file mode 100644 index 0000000..cf6e39d --- /dev/null +++ b/backend/src/main/java/ovh/herisson/Clyde/Tables/TeacherGivenCourse.java @@ -0,0 +1,15 @@ +package ovh.herisson.Clyde.Tables; + +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; + +@Entity +public class TeacherGivenCourse { + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + private int id; + private int RegNo; + private int CourseId; +} diff --git a/backend/src/main/java/ovh/herisson/Clyde/Tables/TeacherOwnerCourse.java b/backend/src/main/java/ovh/herisson/Clyde/Tables/TeacherOwnerCourse.java new file mode 100644 index 0000000..385f504 --- /dev/null +++ b/backend/src/main/java/ovh/herisson/Clyde/Tables/TeacherOwnerCourse.java @@ -0,0 +1,16 @@ +package ovh.herisson.Clyde.Tables; + +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; + +@Entity +public class TeacherOwnerCourse { + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + private int id; + + private int RegNo; + private int CourseId; +} diff --git a/backend/src/main/java/ovh/herisson/Clyde/Tables/User.java b/backend/src/main/java/ovh/herisson/Clyde/Tables/User.java new file mode 100644 index 0000000..ca69efe --- /dev/null +++ b/backend/src/main/java/ovh/herisson/Clyde/Tables/User.java @@ -0,0 +1,35 @@ +package ovh.herisson.Clyde.Tables; + +import jakarta.persistence.*; + +import java.util.Date; + +//Classe représentant un utilisateur l'attribut password demande surement un peu de rafinement niveau sécurité +//et l'attribut tokenApi doit encore être ajouté vu qu'il faut en discuter + +@Entity +//Je rajoute un s au nom de la table pour éviter les conflits avec les mots réservés +@Table(name = "Users") +public class User { + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + private int RegNo; + + private String LastName; + private String FirstName; + private String Email; + private String Adress; + private String Country; + private Date BirthDate; + private ovh.herisson.Clyde.Tables.Role Role; + private String Password; + + public User(String LastName, String FirstName){ + this.LastName = LastName; + this.FirstName = FirstName; + } + + public User() { + + } +} diff --git a/backend/src/main/java/ovh/herisson/Clyde/Tables/UserCursus.java b/backend/src/main/java/ovh/herisson/Clyde/Tables/UserCursus.java new file mode 100644 index 0000000..d638198 --- /dev/null +++ b/backend/src/main/java/ovh/herisson/Clyde/Tables/UserCursus.java @@ -0,0 +1,13 @@ +package ovh.herisson.Clyde.Tables; + +import jakarta.persistence.*; + +@Entity +@Table(name = "User_Cursus") +public class UserCursus { + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + private int id; + private int RegNo; + private int CursusId; +} From 25019d8b912a8cee6e3c2519371b1b162899985d Mon Sep 17 00:00:00 2001 From: LeoMoulin Date: Fri, 1 Mar 2024 01:47:11 +0100 Subject: [PATCH 2/9] =?UTF-8?q?Suppression=20de=20TeacherOwnerCourse.java?= =?UTF-8?q?=20et=20ajout=20d'un=20bool=C3=A9en=20Owned=20dans=20TeacherGiv?= =?UTF-8?q?enCourse.java?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Clyde/Tables/TeacherGivenCourse.java | 1 + .../Clyde/Tables/TeacherOwnerCourse.java | 16 ---------------- 2 files changed, 1 insertion(+), 16 deletions(-) delete mode 100644 backend/src/main/java/ovh/herisson/Clyde/Tables/TeacherOwnerCourse.java diff --git a/backend/src/main/java/ovh/herisson/Clyde/Tables/TeacherGivenCourse.java b/backend/src/main/java/ovh/herisson/Clyde/Tables/TeacherGivenCourse.java index cf6e39d..5dcf1bf 100644 --- a/backend/src/main/java/ovh/herisson/Clyde/Tables/TeacherGivenCourse.java +++ b/backend/src/main/java/ovh/herisson/Clyde/Tables/TeacherGivenCourse.java @@ -12,4 +12,5 @@ public class TeacherGivenCourse { private int id; private int RegNo; private int CourseId; + private boolean Owned; } diff --git a/backend/src/main/java/ovh/herisson/Clyde/Tables/TeacherOwnerCourse.java b/backend/src/main/java/ovh/herisson/Clyde/Tables/TeacherOwnerCourse.java deleted file mode 100644 index 385f504..0000000 --- a/backend/src/main/java/ovh/herisson/Clyde/Tables/TeacherOwnerCourse.java +++ /dev/null @@ -1,16 +0,0 @@ -package ovh.herisson.Clyde.Tables; - -import jakarta.persistence.Entity; -import jakarta.persistence.GeneratedValue; -import jakarta.persistence.GenerationType; -import jakarta.persistence.Id; - -@Entity -public class TeacherOwnerCourse { - @Id - @GeneratedValue(strategy = GenerationType.AUTO) - private int id; - - private int RegNo; - private int CourseId; -} From 3956037ab5e7e293aa729ad0609d2b0efbc9862a Mon Sep 17 00:00:00 2001 From: Bartha Maxime <231026@umons.ac.be> Date: Sat, 2 Mar 2024 23:33:48 +0100 Subject: [PATCH 3/9] example backend api with user table --- .../Clyde/EndPoints/UserController.java | 27 +++++++++ .../Clyde/Repositories/UserRepository.java | 16 ++++++ .../java/ovh/herisson/Clyde/Tables/User.java | 57 ++++++++++++++++++- .../src/main/resources/application.properties | 3 +- 4 files changed, 101 insertions(+), 2 deletions(-) create mode 100644 backend/src/main/java/ovh/herisson/Clyde/EndPoints/UserController.java create mode 100644 backend/src/main/java/ovh/herisson/Clyde/Repositories/UserRepository.java diff --git a/backend/src/main/java/ovh/herisson/Clyde/EndPoints/UserController.java b/backend/src/main/java/ovh/herisson/Clyde/EndPoints/UserController.java new file mode 100644 index 0000000..1210831 --- /dev/null +++ b/backend/src/main/java/ovh/herisson/Clyde/EndPoints/UserController.java @@ -0,0 +1,27 @@ +package ovh.herisson.Clyde.EndPoints; + + +import org.springframework.web.bind.annotation.*; +import ovh.herisson.Clyde.Repositories.UserRepository; +import ovh.herisson.Clyde.Tables.User; + + +@RestController +@CrossOrigin(origins = "http://localhost:5173") +public class UserController { + + private final UserRepository userRepo; + + public UserController(UserRepository userRepo){ + this.userRepo = userRepo; + } + + @GetMapping("/users") + public Iterable getUsers(){ + return userRepo.findAll(); + } + @PostMapping("/users") + public void postUser(@RequestBody User user ){ + userRepo.save(user); + } +} diff --git a/backend/src/main/java/ovh/herisson/Clyde/Repositories/UserRepository.java b/backend/src/main/java/ovh/herisson/Clyde/Repositories/UserRepository.java new file mode 100644 index 0000000..38f9ae0 --- /dev/null +++ b/backend/src/main/java/ovh/herisson/Clyde/Repositories/UserRepository.java @@ -0,0 +1,16 @@ +package ovh.herisson.Clyde.Repositories; + +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.CrudRepository; +import ovh.herisson.Clyde.Tables.User; + +import java.util.List; + +public interface UserRepository extends CrudRepository { + + User findById(long id); + + /** + @Query(value = "select a.* from Users a ",nativeQuery = true) + Iterable findAllUsers();**/ +} \ No newline at end of file diff --git a/backend/src/main/java/ovh/herisson/Clyde/Tables/User.java b/backend/src/main/java/ovh/herisson/Clyde/Tables/User.java index ca69efe..2165681 100644 --- a/backend/src/main/java/ovh/herisson/Clyde/Tables/User.java +++ b/backend/src/main/java/ovh/herisson/Clyde/Tables/User.java @@ -14,7 +14,6 @@ public class User { @Id @GeneratedValue(strategy = GenerationType.AUTO) private int RegNo; - private String LastName; private String FirstName; private String Email; @@ -32,4 +31,60 @@ public class User { public User() { } + + public String getLastName() { + return LastName; + } + + public void setLastName(String LastName) { + this.LastName = LastName; + } + + public String getFirstName() { + return FirstName; + } + + public void setFirstName(String firstName) { + FirstName = firstName; + } + + public String getEmail() { + return Email; + } + + public void setEmail(String email) { + Email = email; + } + + public String getAdress() { + return Adress; + } + + public void setAdress(String adress) { + Adress = adress; + } + + public String getCountry() { + return Country; + } + + public void setCountry(String country) { + Country = country; + } + + public Date getBirthDate() { + return BirthDate; + } + + public void setBirthDate(Date birthDate) { + BirthDate = birthDate; + } + + public ovh.herisson.Clyde.Tables.Role getRole() { + return Role; + } + + public void setRole(ovh.herisson.Clyde.Tables.Role role) { + Role = role; + } } diff --git a/backend/src/main/resources/application.properties b/backend/src/main/resources/application.properties index 8b13789..df288a6 100644 --- a/backend/src/main/resources/application.properties +++ b/backend/src/main/resources/application.properties @@ -1 +1,2 @@ - +spring.jpa.hibernate.ddl-auto=create-drop +spring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect From 684c3095eb7b4e9297d29a85f9648abe3e7d8d9b Mon Sep 17 00:00:00 2001 From: LeoMoulin Date: Sun, 3 Mar 2024 17:42:26 +0100 Subject: [PATCH 4/9] =?UTF-8?q?-=20Changement=20des=20noms=20de=20variable?= =?UTF-8?q?s=20-=20Ajout=20des=20getters/setters=20appropri=C3=A9s=20-=20A?= =?UTF-8?q?jout=20des=20constructeur=20n=C3=A9cessaires?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .attach_pid7200 | 0 .../ovh/herisson/Clyde/Tables/Course.java | 44 +++++++++++-- .../ovh/herisson/Clyde/Tables/Cursus.java | 33 +++++++++- .../herisson/Clyde/Tables/CursusCourse.java | 30 ++++++++- .../ovh/herisson/Clyde/Tables/Secretary.java | 31 ++++++++- .../Clyde/Tables/TeacherGivenCourse.java | 44 ++++++++++++- .../java/ovh/herisson/Clyde/Tables/User.java | 64 ++++++++++--------- .../ovh/herisson/Clyde/Tables/UserCursus.java | 31 ++++++++- 8 files changed, 232 insertions(+), 45 deletions(-) create mode 100644 .attach_pid7200 diff --git a/.attach_pid7200 b/.attach_pid7200 new file mode 100644 index 0000000..e69de29 diff --git a/backend/src/main/java/ovh/herisson/Clyde/Tables/Course.java b/backend/src/main/java/ovh/herisson/Clyde/Tables/Course.java index b5bdf00..54e167a 100644 --- a/backend/src/main/java/ovh/herisson/Clyde/Tables/Course.java +++ b/backend/src/main/java/ovh/herisson/Clyde/Tables/Course.java @@ -9,8 +9,44 @@ import jakarta.persistence.Id; public class Course { @Id @GeneratedValue(strategy = GenerationType.AUTO) - private int CourseID; - private int Credits; - private String Title; - private String Faculty; + private int courseID; + private int credits; + private String title; + private String faculty; + + public Course(int credits, String title, String faculty){ + this.credits = credits; + this.title = title; + this.faculty = faculty; + } + + public Course() {} + + public int getCourseID() { + return courseID; + } + + public int getCredits() { + return credits; + } + + public void setCredits(int credits){ + this.credits = credits; + } + + public String getFaculty() { + return faculty; + } + + public void setFaculty(String faculty){ + this.faculty = faculty; + } + + public String getTitle() { + return title; + } + + public void setTitle(String title){ + this.title = title; + } } 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 c909f9e..5167197 100644 --- a/backend/src/main/java/ovh/herisson/Clyde/Tables/Cursus.java +++ b/backend/src/main/java/ovh/herisson/Clyde/Tables/Cursus.java @@ -9,8 +9,35 @@ import jakarta.persistence.Id; public class Cursus { @Id @GeneratedValue(strategy = GenerationType.AUTO) - private int CursusId; - private int Year; - private String Option; + private int cursusId; + private int year; + private String option; + + public Cursus(int year, String option){ + this.year = year; + this.option = option; + } + + public Cursus() {} + + public int getCursusId(){ + return this.cursusId; + } + + public int getYear(){ + return this.year; + } + + public void setYear(int year){ + this.year = year; + } + + public String getOption(){ + return this.option; + } + + public void setOption(String option){ + this.option = option; + } } diff --git a/backend/src/main/java/ovh/herisson/Clyde/Tables/CursusCourse.java b/backend/src/main/java/ovh/herisson/Clyde/Tables/CursusCourse.java index c8a669f..30fed1c 100644 --- a/backend/src/main/java/ovh/herisson/Clyde/Tables/CursusCourse.java +++ b/backend/src/main/java/ovh/herisson/Clyde/Tables/CursusCourse.java @@ -10,7 +10,33 @@ public class CursusCourse { @Id @GeneratedValue(strategy = GenerationType.AUTO) private int id; - private int CursusId; - private int CourseId; + private int cursusId; + private int courseId; + public CursusCourse(int cursusId, int courseId){ + this.cursusId = cursusId; + this.courseId = courseId; + } + + public CursusCourse() {} + + public int getId() { + return id; + } + + public int getCourseId() { + return courseId; + } + + public void setCourseId(int courseId){ + this.courseId = courseId; + } + + public int getCursusId() { + return cursusId; + } + + public void setCursusId(int cursusId) { + this.cursusId = cursusId; + } } diff --git a/backend/src/main/java/ovh/herisson/Clyde/Tables/Secretary.java b/backend/src/main/java/ovh/herisson/Clyde/Tables/Secretary.java index 8c2220b..ec7a86a 100644 --- a/backend/src/main/java/ovh/herisson/Clyde/Tables/Secretary.java +++ b/backend/src/main/java/ovh/herisson/Clyde/Tables/Secretary.java @@ -10,6 +10,33 @@ public class Secretary { @Id @GeneratedValue(strategy = GenerationType.AUTO) private int id; - private int RegNo; - private String Faculty; + private int regNo; + private String faculty; + + public Secretary(int regNo, String faculty){ + this.regNo = regNo; + this.faculty = faculty; + } + + public Secretary() {} + + public int getId() { + return id; + } + + public int getRegNo() { + return regNo; + } + + public void setRegNo(int regNo) { + this.regNo = regNo; + } + + public String getFaculty() { + return faculty; + } + + public void setFaculty(String faculty) { + this.faculty = faculty; + } } diff --git a/backend/src/main/java/ovh/herisson/Clyde/Tables/TeacherGivenCourse.java b/backend/src/main/java/ovh/herisson/Clyde/Tables/TeacherGivenCourse.java index 5dcf1bf..6e137c5 100644 --- a/backend/src/main/java/ovh/herisson/Clyde/Tables/TeacherGivenCourse.java +++ b/backend/src/main/java/ovh/herisson/Clyde/Tables/TeacherGivenCourse.java @@ -10,7 +10,45 @@ public class TeacherGivenCourse { @Id @GeneratedValue(strategy = GenerationType.AUTO) private int id; - private int RegNo; - private int CourseId; - private boolean Owned; + private int regNo; + private int courseId; + + //This flag helps make the difference between an assistant or a Teacher (who owns the course) + private boolean owned; + + public TeacherGivenCourse(int regNo, int courseId, boolean owned){ + this.regNo = regNo; + this.courseId = courseId; + this.owned = owned; + } + + public TeacherGivenCourse() {} + + public int getId() { + return id; + } + + public int getRegNo() { + return regNo; + } + + public void setRegNo(int regNo) { + this.regNo = regNo; + } + + public int getCourseId() { + return courseId; + } + + public void setCourseId(int courseId) { + this.courseId = courseId; + } + + public boolean isOwned() { + return owned; + } + + public void setOwned(boolean owned) { + this.owned = owned; + } } diff --git a/backend/src/main/java/ovh/herisson/Clyde/Tables/User.java b/backend/src/main/java/ovh/herisson/Clyde/Tables/User.java index 2165681..172fd0d 100644 --- a/backend/src/main/java/ovh/herisson/Clyde/Tables/User.java +++ b/backend/src/main/java/ovh/herisson/Clyde/Tables/User.java @@ -13,78 +13,84 @@ import java.util.Date; public class User { @Id @GeneratedValue(strategy = GenerationType.AUTO) - private int RegNo; - private String LastName; - private String FirstName; - private String Email; - private String Adress; - private String Country; - private Date BirthDate; - private ovh.herisson.Clyde.Tables.Role Role; - private String Password; + private int regNo; + private String lastName; + private String firstName; + private String email; + private String adress; + private String country; + private Date birthDate; + private ovh.herisson.Clyde.Tables.Role role; + private String password; - public User(String LastName, String FirstName){ - this.LastName = LastName; - this.FirstName = FirstName; + public User(String lastName, String firstName, String email, String adress, String country, Date birthDate, Role role){ + this.lastName = lastName; + this.firstName = firstName; + this.email = email; + this.adress = adress; + this.country = country; + this.birthDate = birthDate; + this.role = role; } - public User() { + public User() {} + public int getRegNo(){ + return this.regNo; } - public String getLastName() { - return LastName; + return lastName; } - public void setLastName(String LastName) { - this.LastName = LastName; + public void setLastName(String lastName) { + this.lastName = lastName; } public String getFirstName() { - return FirstName; + return firstName; } public void setFirstName(String firstName) { - FirstName = firstName; + this.firstName = firstName; } public String getEmail() { - return Email; + return email; } public void setEmail(String email) { - Email = email; + this.email = email; } public String getAdress() { - return Adress; + return adress; } public void setAdress(String adress) { - Adress = adress; + this.adress = adress; } public String getCountry() { - return Country; + return country; } public void setCountry(String country) { - Country = country; + this.country = country; } public Date getBirthDate() { - return BirthDate; + return birthDate; } public void setBirthDate(Date birthDate) { - BirthDate = birthDate; + this.birthDate = birthDate; } public ovh.herisson.Clyde.Tables.Role getRole() { - return Role; + return role; } public void setRole(ovh.herisson.Clyde.Tables.Role role) { - Role = role; + this.role = role; } } 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 d638198..2222fdb 100644 --- a/backend/src/main/java/ovh/herisson/Clyde/Tables/UserCursus.java +++ b/backend/src/main/java/ovh/herisson/Clyde/Tables/UserCursus.java @@ -8,6 +8,33 @@ public class UserCursus { @Id @GeneratedValue(strategy = GenerationType.AUTO) private int id; - private int RegNo; - private int CursusId; + private int regNo; + private int cursusId; + + public UserCursus(int regNo, int cursusId){ + this.regNo = regNo; + this.cursusId = cursusId; + } + + public UserCursus() {} + + public int getId() { + return id; + } + + public int getRegNo() { + return regNo; + } + + public void setRegNo(int regNo) { + this.regNo = regNo; + } + + public int getCursusId() { + return cursusId; + } + + public void setCursusId(int cursusId) { + this.cursusId = cursusId; + } } From 6c688dab599940229d6d9f7d82682db84b92963e Mon Sep 17 00:00:00 2001 From: Bartha Maxime <231026@umons.ac.be> Date: Mon, 4 Mar 2024 21:25:44 +0100 Subject: [PATCH 5/9] added Admin and Secretary --- backend/src/main/java/ovh/herisson/Clyde/Tables/Role.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/backend/src/main/java/ovh/herisson/Clyde/Tables/Role.java b/backend/src/main/java/ovh/herisson/Clyde/Tables/Role.java index d9ccb94..bb14f3f 100644 --- a/backend/src/main/java/ovh/herisson/Clyde/Tables/Role.java +++ b/backend/src/main/java/ovh/herisson/Clyde/Tables/Role.java @@ -2,6 +2,7 @@ package ovh.herisson.Clyde.Tables; public enum Role { Teacher, - Student; - + Student, + Admin, + Secretary; } From 45bfe08c9a006039b74c772204d2876de7b45cc6 Mon Sep 17 00:00:00 2001 From: Bartha Maxime <231026@umons.ac.be> Date: Mon, 4 Mar 2024 21:27:22 +0100 Subject: [PATCH 6/9] added .idea/ to .gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 24a8972..93aac47 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,4 @@ build .project .settings +.idea/ From cc89d7f5b7b2fea4fd28b0cba50bd917f45d6e65 Mon Sep 17 00:00:00 2001 From: Bartha Maxime <231026@umons.ac.be> Date: Mon, 4 Mar 2024 23:35:15 +0100 Subject: [PATCH 7/9] added ResponseEntity and TODOs --- .../Clyde/EndPoints/UserController.java | 27 +++++++++++++++---- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/backend/src/main/java/ovh/herisson/Clyde/EndPoints/UserController.java b/backend/src/main/java/ovh/herisson/Clyde/EndPoints/UserController.java index 1210831..affb301 100644 --- a/backend/src/main/java/ovh/herisson/Clyde/EndPoints/UserController.java +++ b/backend/src/main/java/ovh/herisson/Clyde/EndPoints/UserController.java @@ -1,6 +1,9 @@ package ovh.herisson.Clyde.EndPoints; +import org.springframework.http.HttpStatus; +import org.springframework.http.HttpStatusCode; +import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; import ovh.herisson.Clyde.Repositories.UserRepository; import ovh.herisson.Clyde.Tables.User; @@ -16,12 +19,26 @@ public class UserController { this.userRepo = userRepo; } + @GetMapping("/user") + public ResponseEntity getUsers(@RequestHeader("Authorization") String token){ + //TODO + // Get the token thru the data base + // tokenRepo.findToken(token) => User userFromToken + // si role != secretary => return error : ResponseEntity(null, HttpStatus.UNAUTHORIZED) + return new ResponseEntity(/**userRepo.findById(userFromToken.id),**/ HttpStatus.OK); + } + + @PostMapping("/user") + public ResponseEntity postUser(@RequestBody User user){ + userRepo.save(user); + return new ResponseEntity(String.format("Account created with ID:%s",user.getRegNo()),HttpStatus.CREATED); + } + @GetMapping("/users") - public Iterable getUsers(){ + public Iterable getAllUsers(){//TODO ne l'accepter que si c'est le secrétariat return userRepo.findAll(); } - @PostMapping("/users") - public void postUser(@RequestBody User user ){ - userRepo.save(user); - } + + } + From c27c3ac9fba1dcb8ed4b4adcfdd78ab73cb2604e Mon Sep 17 00:00:00 2001 From: LeoMoulin Date: Tue, 5 Mar 2024 14:14:56 +0100 Subject: [PATCH 8/9] - Ajout des champs password et salt dans user - Ajout de la table token - Ajout des foreign keys --- .../herisson/Clyde/Tables/CursusCourse.java | 9 ++-- .../ovh/herisson/Clyde/Tables/Secretary.java | 7 ++-- .../Clyde/Tables/TeacherGivenCourse.java | 9 ++-- .../java/ovh/herisson/Clyde/Tables/Token.java | 41 +++++++++++++++++++ .../java/ovh/herisson/Clyde/Tables/User.java | 21 +++++++++- .../ovh/herisson/Clyde/Tables/UserCursus.java | 3 ++ 6 files changed, 76 insertions(+), 14 deletions(-) create mode 100644 backend/src/main/java/ovh/herisson/Clyde/Tables/Token.java diff --git a/backend/src/main/java/ovh/herisson/Clyde/Tables/CursusCourse.java b/backend/src/main/java/ovh/herisson/Clyde/Tables/CursusCourse.java index 30fed1c..e48e6a3 100644 --- a/backend/src/main/java/ovh/herisson/Clyde/Tables/CursusCourse.java +++ b/backend/src/main/java/ovh/herisson/Clyde/Tables/CursusCourse.java @@ -1,16 +1,17 @@ package ovh.herisson.Clyde.Tables; -import jakarta.persistence.Entity; -import jakarta.persistence.GeneratedValue; -import jakarta.persistence.GenerationType; -import jakarta.persistence.Id; +import jakarta.persistence.*; @Entity public class CursusCourse { @Id @GeneratedValue(strategy = GenerationType.AUTO) private int id; + + @JoinColumn(name = "Cursus") private int cursusId; + + @JoinColumn(name = "Course") private int courseId; public CursusCourse(int cursusId, int courseId){ diff --git a/backend/src/main/java/ovh/herisson/Clyde/Tables/Secretary.java b/backend/src/main/java/ovh/herisson/Clyde/Tables/Secretary.java index ec7a86a..6161952 100644 --- a/backend/src/main/java/ovh/herisson/Clyde/Tables/Secretary.java +++ b/backend/src/main/java/ovh/herisson/Clyde/Tables/Secretary.java @@ -1,15 +1,14 @@ package ovh.herisson.Clyde.Tables; -import jakarta.persistence.Entity; -import jakarta.persistence.GeneratedValue; -import jakarta.persistence.GenerationType; -import jakarta.persistence.Id; +import jakarta.persistence.*; @Entity public class Secretary { @Id @GeneratedValue(strategy = GenerationType.AUTO) private int id; + + @JoinColumn(name = "User") private int regNo; private String faculty; diff --git a/backend/src/main/java/ovh/herisson/Clyde/Tables/TeacherGivenCourse.java b/backend/src/main/java/ovh/herisson/Clyde/Tables/TeacherGivenCourse.java index 6e137c5..f2c089a 100644 --- a/backend/src/main/java/ovh/herisson/Clyde/Tables/TeacherGivenCourse.java +++ b/backend/src/main/java/ovh/herisson/Clyde/Tables/TeacherGivenCourse.java @@ -1,16 +1,17 @@ package ovh.herisson.Clyde.Tables; -import jakarta.persistence.Entity; -import jakarta.persistence.GeneratedValue; -import jakarta.persistence.GenerationType; -import jakarta.persistence.Id; +import jakarta.persistence.*; @Entity public class TeacherGivenCourse { @Id @GeneratedValue(strategy = GenerationType.AUTO) private int id; + + @JoinColumn(name = "User") private int regNo; + + @JoinColumn(name = "Course") private int courseId; //This flag helps make the difference between an assistant or a Teacher (who owns the course) diff --git a/backend/src/main/java/ovh/herisson/Clyde/Tables/Token.java b/backend/src/main/java/ovh/herisson/Clyde/Tables/Token.java new file mode 100644 index 0000000..0ed6606 --- /dev/null +++ b/backend/src/main/java/ovh/herisson/Clyde/Tables/Token.java @@ -0,0 +1,41 @@ +package ovh.herisson.Clyde.Tables; + +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; + +@Entity +public class Token { + @GeneratedValue(strategy = GenerationType.AUTO) + @Id + private int id; + private int regNo; + private String data; + + public Token(int regNo, String data){ + this.regNo = regNo; + this.data = data; + } + + public Token(){} + public int getId() { + return id; + } + + public int getRegNo() { + return regNo; + } + + public void setRegNo(int regNo) { + this.regNo = regNo; + } + + public String getData(){ + return data; + } + + public void setData(String data) { + this.data = data; + } +} diff --git a/backend/src/main/java/ovh/herisson/Clyde/Tables/User.java b/backend/src/main/java/ovh/herisson/Clyde/Tables/User.java index 172fd0d..2755eff 100644 --- a/backend/src/main/java/ovh/herisson/Clyde/Tables/User.java +++ b/backend/src/main/java/ovh/herisson/Clyde/Tables/User.java @@ -22,8 +22,8 @@ public class User { private Date birthDate; private ovh.herisson.Clyde.Tables.Role role; private String password; - - public User(String lastName, String firstName, String email, String adress, String country, Date birthDate, Role role){ + private String salt; + public User(String lastName, String firstName, String email, String adress, String country, Date birthDate, Role role, String password, String salt){ this.lastName = lastName; this.firstName = firstName; this.email = email; @@ -31,6 +31,8 @@ public class User { this.country = country; this.birthDate = birthDate; this.role = role; + this.password = password; + this.salt = salt; } public User() {} @@ -93,4 +95,19 @@ public class User { public void setRole(ovh.herisson.Clyde.Tables.Role role) { this.role = role; } + public String getPassword(){ + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public String getSalt(){ + return salt; + } + + public void setSalt(String salt) { + this.salt = salt; + } } 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 2222fdb..9460905 100644 --- a/backend/src/main/java/ovh/herisson/Clyde/Tables/UserCursus.java +++ b/backend/src/main/java/ovh/herisson/Clyde/Tables/UserCursus.java @@ -8,7 +8,10 @@ public class UserCursus { @Id @GeneratedValue(strategy = GenerationType.AUTO) private int id; + @JoinColumn(name = "User") private int regNo; + + @JoinColumn(name = "Cursus") private int cursusId; public UserCursus(int regNo, int cursusId){ From bb0e6783ece6baaa6fbaf24c0d1bbb348f46e80d Mon Sep 17 00:00:00 2001 From: Bartha Maxime <231026@umons.ac.be> Date: Tue, 5 Mar 2024 23:34:49 +0100 Subject: [PATCH 9/9] correction commit --- .attach_pid7200 | 0 .../ovh/herisson/Clyde/Tables/Secretary.java | 2 +- .../Clyde/Tables/TeacherGivenCourse.java | 2 +- .../java/ovh/herisson/Clyde/Tables/Token.java | 23 +++++++++--------- .../java/ovh/herisson/Clyde/Tables/User.java | 24 ++++++------------- .../ovh/herisson/Clyde/Tables/UserCursus.java | 3 +-- 6 files changed, 21 insertions(+), 33 deletions(-) delete mode 100644 .attach_pid7200 diff --git a/.attach_pid7200 b/.attach_pid7200 deleted file mode 100644 index e69de29..0000000 diff --git a/backend/src/main/java/ovh/herisson/Clyde/Tables/Secretary.java b/backend/src/main/java/ovh/herisson/Clyde/Tables/Secretary.java index 6161952..cf533a0 100644 --- a/backend/src/main/java/ovh/herisson/Clyde/Tables/Secretary.java +++ b/backend/src/main/java/ovh/herisson/Clyde/Tables/Secretary.java @@ -8,7 +8,7 @@ public class Secretary { @GeneratedValue(strategy = GenerationType.AUTO) private int id; - @JoinColumn(name = "User") + @JoinColumn(name = "Users") private int regNo; private String faculty; diff --git a/backend/src/main/java/ovh/herisson/Clyde/Tables/TeacherGivenCourse.java b/backend/src/main/java/ovh/herisson/Clyde/Tables/TeacherGivenCourse.java index f2c089a..9cb931e 100644 --- a/backend/src/main/java/ovh/herisson/Clyde/Tables/TeacherGivenCourse.java +++ b/backend/src/main/java/ovh/herisson/Clyde/Tables/TeacherGivenCourse.java @@ -8,7 +8,7 @@ public class TeacherGivenCourse { @GeneratedValue(strategy = GenerationType.AUTO) private int id; - @JoinColumn(name = "User") + @JoinColumn(name = "Users") private int regNo; @JoinColumn(name = "Course") diff --git a/backend/src/main/java/ovh/herisson/Clyde/Tables/Token.java b/backend/src/main/java/ovh/herisson/Clyde/Tables/Token.java index 0ed6606..ec59cbf 100644 --- a/backend/src/main/java/ovh/herisson/Clyde/Tables/Token.java +++ b/backend/src/main/java/ovh/herisson/Clyde/Tables/Token.java @@ -1,21 +1,20 @@ package ovh.herisson.Clyde.Tables; -import jakarta.persistence.Entity; -import jakarta.persistence.GeneratedValue; -import jakarta.persistence.GenerationType; -import jakarta.persistence.Id; +import jakarta.persistence.*; @Entity public class Token { @GeneratedValue(strategy = GenerationType.AUTO) @Id private int id; - private int regNo; - private String data; - public Token(int regNo, String data){ + @JoinColumn(name ="Users") + private int regNo; + private String token; + + public Token(int regNo, String token){ this.regNo = regNo; - this.data = data; + this.token = token; } public Token(){} @@ -31,11 +30,11 @@ public class Token { this.regNo = regNo; } - public String getData(){ - return data; + public String getToken(){ + return token; } - public void setData(String data) { - this.data = data; + public void setToken(String data) { + this.token = data; } } diff --git a/backend/src/main/java/ovh/herisson/Clyde/Tables/User.java b/backend/src/main/java/ovh/herisson/Clyde/Tables/User.java index 2755eff..746ac3b 100644 --- a/backend/src/main/java/ovh/herisson/Clyde/Tables/User.java +++ b/backend/src/main/java/ovh/herisson/Clyde/Tables/User.java @@ -17,22 +17,20 @@ public class User { private String lastName; private String firstName; private String email; - private String adress; + private String address; private String country; private Date birthDate; private ovh.herisson.Clyde.Tables.Role role; private String password; - private String salt; - public User(String lastName, String firstName, String email, String adress, String country, Date birthDate, Role role, String password, String salt){ + public User(String lastName, String firstName, String email, String address, String country, Date birthDate, Role role, String password){ this.lastName = lastName; this.firstName = firstName; this.email = email; - this.adress = adress; + this.address = address; this.country = country; this.birthDate = birthDate; this.role = role; this.password = password; - this.salt = salt; } public User() {} @@ -64,12 +62,12 @@ public class User { this.email = email; } - public String getAdress() { - return adress; + public String getAddress() { + return address; } - public void setAdress(String adress) { - this.adress = adress; + public void setAddress(String adress) { + this.address = adress; } public String getCountry() { @@ -102,12 +100,4 @@ public class User { public void setPassword(String password) { this.password = password; } - - public String getSalt(){ - return salt; - } - - public void setSalt(String salt) { - this.salt = salt; - } } 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 9460905..4de1559 100644 --- a/backend/src/main/java/ovh/herisson/Clyde/Tables/UserCursus.java +++ b/backend/src/main/java/ovh/herisson/Clyde/Tables/UserCursus.java @@ -3,12 +3,11 @@ package ovh.herisson.Clyde.Tables; import jakarta.persistence.*; @Entity -@Table(name = "User_Cursus") public class UserCursus { @Id @GeneratedValue(strategy = GenerationType.AUTO) private int id; - @JoinColumn(name = "User") + @JoinColumn(name = "Users") private int regNo; @JoinColumn(name = "Cursus")