From e1ea269782bd89997289fb4481c538729409977c Mon Sep 17 00:00:00 2001 From: Yohan Boujon Date: Sun, 22 Dec 2024 17:52:15 +0100 Subject: [PATCH] Refactoring `administration` to `database-manager`. Now all elements from the database are defined here. --- .../pom.xml | 2 +- .../helpapp/rest/AdministrationService.java | 22 ++++++++++++++++++ .../application/helpapp/rest/Connection.java | 0 .../helpapp/rest/ConnectionRepository.java | 0 .../application/helpapp/rest/Request.java} | 10 ++++---- .../helpapp/rest/RequestRepository.java | 2 +- .../insa/application/helpapp/rest/Role.java | 0 .../helpapp/rest/RoleRepository.java | 0 .../insa/application/helpapp/rest/User.java | 0 .../helpapp/rest/UserRepository.java | 0 backend/pom.xml | 4 ++-- backend/request-service/pom.xml | 2 +- .../rest/RequestServiceApplication.java | 15 +++++++++--- backend/role-service/pom.xml | 6 +++++ .../helpapp/rest/RoleServiceApplication.java | 4 ++-- backend/user-service/pom.xml | 2 +- .../application/helpapp/rest/UserService.java | 23 ------------------- 17 files changed, 53 insertions(+), 39 deletions(-) rename backend/{administration => database-manager}/pom.xml (96%) rename backend/{administration => database-manager}/src/main/java/insa/application/helpapp/rest/AdministrationService.java (52%) rename backend/{administration => database-manager}/src/main/java/insa/application/helpapp/rest/Connection.java (100%) rename backend/{administration => database-manager}/src/main/java/insa/application/helpapp/rest/ConnectionRepository.java (100%) rename backend/{request-service/src/main/java/insa/application/helpapp/rest/Requests.java => database-manager/src/main/java/insa/application/helpapp/rest/Request.java} (87%) rename backend/{request-service => database-manager}/src/main/java/insa/application/helpapp/rest/RequestRepository.java (92%) rename backend/{role-service => database-manager}/src/main/java/insa/application/helpapp/rest/Role.java (100%) rename backend/{role-service => database-manager}/src/main/java/insa/application/helpapp/rest/RoleRepository.java (100%) rename backend/{user-service => database-manager}/src/main/java/insa/application/helpapp/rest/User.java (100%) rename backend/{user-service => database-manager}/src/main/java/insa/application/helpapp/rest/UserRepository.java (100%) delete mode 100644 backend/user-service/src/main/java/insa/application/helpapp/rest/UserService.java diff --git a/backend/administration/pom.xml b/backend/database-manager/pom.xml similarity index 96% rename from backend/administration/pom.xml rename to backend/database-manager/pom.xml index 9717a48..4ba7abd 100644 --- a/backend/administration/pom.xml +++ b/backend/database-manager/pom.xml @@ -5,7 +5,7 @@ 1.0-SNAPSHOT 4.0.0 - administration + database-manager jar diff --git a/backend/administration/src/main/java/insa/application/helpapp/rest/AdministrationService.java b/backend/database-manager/src/main/java/insa/application/helpapp/rest/AdministrationService.java similarity index 52% rename from backend/administration/src/main/java/insa/application/helpapp/rest/AdministrationService.java rename to backend/database-manager/src/main/java/insa/application/helpapp/rest/AdministrationService.java index 6c3ea52..1853c33 100644 --- a/backend/administration/src/main/java/insa/application/helpapp/rest/AdministrationService.java +++ b/backend/database-manager/src/main/java/insa/application/helpapp/rest/AdministrationService.java @@ -4,12 +4,15 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; +import java.util.Optional; @Service public class AdministrationService { @Autowired private ConnectionRepository connectionRepository; + @Autowired + private RoleRepository roleRepository; public boolean checkToken(int idUser, String token) { List connections = connectionRepository.findByIdUser(idUser); @@ -20,4 +23,23 @@ public class AdministrationService { Connection c = connections.getFirst(); return c.getToken().equals(token) && c.getExpiresAt().isAfter(java.time.LocalDateTime.now()); } + + public boolean checkRole(int idUser, int role) + { + List connections = connectionRepository.findByIdUser(idUser); + + if (connections.isEmpty()) { + return false; + } + // Connection c = connections.getFirst(); + Optional roleOption = roleRepository.findById(role); + if(!roleOption.isPresent()) { + return false; + } + return true; + } + + public List getRoles() { + return roleRepository.findAll(); + } } diff --git a/backend/administration/src/main/java/insa/application/helpapp/rest/Connection.java b/backend/database-manager/src/main/java/insa/application/helpapp/rest/Connection.java similarity index 100% rename from backend/administration/src/main/java/insa/application/helpapp/rest/Connection.java rename to backend/database-manager/src/main/java/insa/application/helpapp/rest/Connection.java diff --git a/backend/administration/src/main/java/insa/application/helpapp/rest/ConnectionRepository.java b/backend/database-manager/src/main/java/insa/application/helpapp/rest/ConnectionRepository.java similarity index 100% rename from backend/administration/src/main/java/insa/application/helpapp/rest/ConnectionRepository.java rename to backend/database-manager/src/main/java/insa/application/helpapp/rest/ConnectionRepository.java diff --git a/backend/request-service/src/main/java/insa/application/helpapp/rest/Requests.java b/backend/database-manager/src/main/java/insa/application/helpapp/rest/Request.java similarity index 87% rename from backend/request-service/src/main/java/insa/application/helpapp/rest/Requests.java rename to backend/database-manager/src/main/java/insa/application/helpapp/rest/Request.java index 8eb04eb..688d38e 100644 --- a/backend/request-service/src/main/java/insa/application/helpapp/rest/Requests.java +++ b/backend/database-manager/src/main/java/insa/application/helpapp/rest/Request.java @@ -7,11 +7,11 @@ import jakarta.persistence.Column; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; -import java.time.LocalDate; +import java.time.LocalDateTime; @Entity @Table(name = "requests", schema = "service-architecture") -public class Requests { +public class Request { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @@ -24,7 +24,7 @@ public class Requests { private int idUser; @Column(name = "created_at", nullable = false, columnDefinition = "DATE DEFAULT CURRENT_DATE") - private LocalDate createdAt; + private LocalDateTime createdAt; @Column(name = "message", nullable = false) private String message; @@ -54,11 +54,11 @@ public class Requests { this.idUser = idUser; } - public LocalDate getCreatedAt() { + public LocalDateTime getCreatedAt() { return createdAt; } - public void setCreatedAt(LocalDate createdAt) { + public void setCreatedAt(LocalDateTime createdAt) { this.createdAt = createdAt; } diff --git a/backend/request-service/src/main/java/insa/application/helpapp/rest/RequestRepository.java b/backend/database-manager/src/main/java/insa/application/helpapp/rest/RequestRepository.java similarity index 92% rename from backend/request-service/src/main/java/insa/application/helpapp/rest/RequestRepository.java rename to backend/database-manager/src/main/java/insa/application/helpapp/rest/RequestRepository.java index f0c5c80..61b9d8d 100644 --- a/backend/request-service/src/main/java/insa/application/helpapp/rest/RequestRepository.java +++ b/backend/database-manager/src/main/java/insa/application/helpapp/rest/RequestRepository.java @@ -2,6 +2,6 @@ package insa.application.helpapp.rest; import org.springframework.data.jpa.repository.JpaRepository; -public interface RequestRepository extends JpaRepository { +public interface RequestRepository extends JpaRepository { } \ No newline at end of file diff --git a/backend/role-service/src/main/java/insa/application/helpapp/rest/Role.java b/backend/database-manager/src/main/java/insa/application/helpapp/rest/Role.java similarity index 100% rename from backend/role-service/src/main/java/insa/application/helpapp/rest/Role.java rename to backend/database-manager/src/main/java/insa/application/helpapp/rest/Role.java diff --git a/backend/role-service/src/main/java/insa/application/helpapp/rest/RoleRepository.java b/backend/database-manager/src/main/java/insa/application/helpapp/rest/RoleRepository.java similarity index 100% rename from backend/role-service/src/main/java/insa/application/helpapp/rest/RoleRepository.java rename to backend/database-manager/src/main/java/insa/application/helpapp/rest/RoleRepository.java diff --git a/backend/user-service/src/main/java/insa/application/helpapp/rest/User.java b/backend/database-manager/src/main/java/insa/application/helpapp/rest/User.java similarity index 100% rename from backend/user-service/src/main/java/insa/application/helpapp/rest/User.java rename to backend/database-manager/src/main/java/insa/application/helpapp/rest/User.java diff --git a/backend/user-service/src/main/java/insa/application/helpapp/rest/UserRepository.java b/backend/database-manager/src/main/java/insa/application/helpapp/rest/UserRepository.java similarity index 100% rename from backend/user-service/src/main/java/insa/application/helpapp/rest/UserRepository.java rename to backend/database-manager/src/main/java/insa/application/helpapp/rest/UserRepository.java diff --git a/backend/pom.xml b/backend/pom.xml index e6ee6db..2bc1f84 100644 --- a/backend/pom.xml +++ b/backend/pom.xml @@ -7,8 +7,8 @@ pom - - administration + + database-manager request-service role-service user-service diff --git a/backend/request-service/pom.xml b/backend/request-service/pom.xml index f54d3e0..82462f1 100644 --- a/backend/request-service/pom.xml +++ b/backend/request-service/pom.xml @@ -26,7 +26,7 @@ insa.application.helpapp - administration + database-manager 1.0-SNAPSHOT diff --git a/backend/request-service/src/main/java/insa/application/helpapp/rest/RequestServiceApplication.java b/backend/request-service/src/main/java/insa/application/helpapp/rest/RequestServiceApplication.java index 7968774..99b4cda 100644 --- a/backend/request-service/src/main/java/insa/application/helpapp/rest/RequestServiceApplication.java +++ b/backend/request-service/src/main/java/insa/application/helpapp/rest/RequestServiceApplication.java @@ -10,11 +10,15 @@ import org.springframework.web.servlet.config.annotation.CorsRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; import org.springframework.beans.factory.annotation.Autowired; +import java.time.LocalDateTime; + @SpringBootApplication @RestController public class RequestServiceApplication { @Autowired private AdministrationService administrationService; + @Autowired + private RequestRepository requestRepository; public static void main(String[] args) { SpringApplication.run(RequestServiceApplication.class, args); } @@ -32,13 +36,18 @@ public class RequestServiceApplication { }; } - @PostMapping("/post_message") + @PostMapping("/post_request") public ResponseEntity postMessage(@RequestParam int idUser,@RequestParam String token, @RequestParam String message) { if(!administrationService.checkToken(idUser, token)) { return ResponseEntity.status(HttpStatus.FORBIDDEN).body("User or token invalid."); }; - - return ResponseEntity.ok("Message posted"); + Request request = new Request(); + // id_status = 1 means waiting. it is always set to 1 when created. + request.setIdStatus(1); + request.setIdUser(idUser); + request.setCreatedAt(LocalDateTime.now()); + request.setMessage(message); + return ResponseEntity.ok(requestRepository.save(request)); } } diff --git a/backend/role-service/pom.xml b/backend/role-service/pom.xml index df42e87..c278c5a 100644 --- a/backend/role-service/pom.xml +++ b/backend/role-service/pom.xml @@ -23,6 +23,12 @@ 8.0.33 runtime + + + insa.application.helpapp + database-manager + 1.0-SNAPSHOT + diff --git a/backend/role-service/src/main/java/insa/application/helpapp/rest/RoleServiceApplication.java b/backend/role-service/src/main/java/insa/application/helpapp/rest/RoleServiceApplication.java index 9669849..09d1286 100644 --- a/backend/role-service/src/main/java/insa/application/helpapp/rest/RoleServiceApplication.java +++ b/backend/role-service/src/main/java/insa/application/helpapp/rest/RoleServiceApplication.java @@ -15,7 +15,7 @@ import java.util.List; public class RoleServiceApplication { @Autowired - private RoleRepository roleRepository; + private AdministrationService administrationService; public static void main(String[] args) { SpringApplication.run(RoleServiceApplication.class, args); @@ -36,6 +36,6 @@ public class RoleServiceApplication { @GetMapping("/get_roles") public List getRoles() { - return roleRepository.findAll(); + return administrationService.getRoles(); } } diff --git a/backend/user-service/pom.xml b/backend/user-service/pom.xml index b3ce56b..528eff7 100644 --- a/backend/user-service/pom.xml +++ b/backend/user-service/pom.xml @@ -26,7 +26,7 @@ insa.application.helpapp - administration + database-manager 1.0-SNAPSHOT diff --git a/backend/user-service/src/main/java/insa/application/helpapp/rest/UserService.java b/backend/user-service/src/main/java/insa/application/helpapp/rest/UserService.java deleted file mode 100644 index 18698af..0000000 --- a/backend/user-service/src/main/java/insa/application/helpapp/rest/UserService.java +++ /dev/null @@ -1,23 +0,0 @@ -package insa.application.helpapp.rest; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.util.List; - -@Service -public class UserService { - - @Autowired - private ConnectionRepository connectionRepository; - - public boolean checkToken(int idUser, String token) { - List connections = connectionRepository.findByIdUser(idUser); - - if (connections.isEmpty()) { - return false; - } - Connection c = connections.getFirst(); - return c.getToken().equals(token) && c.getExpiresAt().isAfter(java.time.LocalDateTime.now()); - } -}