From 8bfd44010488b3271e9c7641c58da5e1172f7585 Mon Sep 17 00:00:00 2001 From: Nathan Billard Date: Fri, 29 Nov 2024 16:27:43 +0100 Subject: [PATCH] Admin can get tasks, approve and/or disapprove them --- ApproveService/pom.xml | 7 + .../model/ApproveServiceModel.java | 5 - .../benevolat/ApproveService/model/Task.java | 143 ++++++++++++++++++ .../ressource/ApproveServiceRessource.java | 38 ++++- .../benevolat/Authentication/model/User.java | 4 - 5 files changed, 187 insertions(+), 10 deletions(-) delete mode 100644 ApproveService/src/main/java/fr/insa_toulouse/mas/benevolat/ApproveService/model/ApproveServiceModel.java create mode 100644 ApproveService/src/main/java/fr/insa_toulouse/mas/benevolat/ApproveService/model/Task.java diff --git a/ApproveService/pom.xml b/ApproveService/pom.xml index 3bdbbbc..70c1028 100644 --- a/ApproveService/pom.xml +++ b/ApproveService/pom.xml @@ -40,6 +40,13 @@ spring-boot-starter-test test + + + + com.mysql + mysql-connector-j + 9.1.0 + diff --git a/ApproveService/src/main/java/fr/insa_toulouse/mas/benevolat/ApproveService/model/ApproveServiceModel.java b/ApproveService/src/main/java/fr/insa_toulouse/mas/benevolat/ApproveService/model/ApproveServiceModel.java deleted file mode 100644 index a43343c..0000000 --- a/ApproveService/src/main/java/fr/insa_toulouse/mas/benevolat/ApproveService/model/ApproveServiceModel.java +++ /dev/null @@ -1,5 +0,0 @@ -package fr.insa_toulouse.mas.benevolat.ApproveService.model; - -public class ApproveServiceModel { - -} diff --git a/ApproveService/src/main/java/fr/insa_toulouse/mas/benevolat/ApproveService/model/Task.java b/ApproveService/src/main/java/fr/insa_toulouse/mas/benevolat/ApproveService/model/Task.java new file mode 100644 index 0000000..72d4f93 --- /dev/null +++ b/ApproveService/src/main/java/fr/insa_toulouse/mas/benevolat/ApproveService/model/Task.java @@ -0,0 +1,143 @@ +package fr.insa_toulouse.mas.benevolat.ApproveService.model; + +import java.sql.Statement; +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.HashMap; + + + +public class Task { + private int id; + private boolean condition; + private boolean approval; + private int assignedAdmin ; + private int assignedHelper; + private int assignedRequester; + private String Description; + + static HashMap tasks = new HashMap(); + static Connection connection; + + static { + try { + Task.connection = DriverManager.getConnection("jdbc:mysql://srv-bdens.insa-toulouse.fr:3306/projet_gei_052?user=projet_gei_052&password=ohc1Eet7 "); + } catch(SQLException e) { + throw new RuntimeException(e); + } + } + + public Task(int id, boolean condition, boolean approval, int assignedAdmin, int assignedHelper, + int assignedRequester, String description) { + super(); + this.id = id; + this.condition = condition; + this.approval = approval; + this.assignedAdmin = assignedAdmin; + this.assignedHelper = assignedHelper; + this.assignedRequester = assignedRequester; + Description = description; + } + + static public ArrayList getTasks() { + + ArrayList tasks = new ArrayList(); + Statement statement; + try { + statement = Task.connection.createStatement(); + ResultSet res = statement.executeQuery("SELECT * FROM task WHERE isCompleted != True AND approved != True;"); + while (res.next()) { + tasks.add(new Task(res.getInt("id"), res.getBoolean("isCompleted"), res.getBoolean("approved"), res.getInt("assignedAdmin"), + res.getInt("helper"), res.getInt("helped"), res.getString("description"))); + } + } catch (SQLException e) { + System.out.println(e); + e.printStackTrace(); + } + return tasks; + } + + static public void approveTask(int id) { + try { + Statement statement = Task.connection.createStatement(); + statement.addBatch("UPDATE task SET approved = true, isCompleted = false WHERE id = " + id + ";"); + statement.executeBatch(); + statement.close(); + } catch (SQLException e) { + throw new RuntimeException(e); + } + } + + static public void disapproveTask(int id) { + try { + Statement statement = Task.connection.createStatement(); + statement.addBatch("UPDATE task SET approved = false, isCompleted = true WHERE id = " + id + ";"); + statement.executeBatch(); + statement.close(); + } catch (SQLException e) { + throw new RuntimeException(e); + } + } + + + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public boolean isCondition() { + return condition; + } + + public void setCondition(boolean condition) { + this.condition = condition; + } + + public boolean isApproval() { + return approval; + } + + public void setApproval(boolean approval) { + this.approval = approval; + } + + public int getAssignedAdmin() { + return assignedAdmin; + } + + public void setAssignedAdmin(int assignedAdmin) { + this.assignedAdmin = assignedAdmin; + } + + public int getAssignedHelper() { + return assignedHelper; + } + + public void setAssignedHelper(int assignedHelper) { + this.assignedHelper = assignedHelper; + } + + public int getAssignedRequester() { + return assignedRequester; + } + + public void setAssignedRequester(int assignedRequester) { + this.assignedRequester = assignedRequester; + } + + public String getDescription() { + return Description; + } + + public void setDescription(String description) { + Description = description; + } + +} diff --git a/ApproveService/src/main/java/fr/insa_toulouse/mas/benevolat/ApproveService/ressource/ApproveServiceRessource.java b/ApproveService/src/main/java/fr/insa_toulouse/mas/benevolat/ApproveService/ressource/ApproveServiceRessource.java index 6093455..633a070 100644 --- a/ApproveService/src/main/java/fr/insa_toulouse/mas/benevolat/ApproveService/ressource/ApproveServiceRessource.java +++ b/ApproveService/src/main/java/fr/insa_toulouse/mas/benevolat/ApproveService/ressource/ApproveServiceRessource.java @@ -1,11 +1,47 @@ package fr.insa_toulouse.mas.benevolat.ApproveService.ressource; +import java.util.ArrayList; + +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.client.RestTemplate; + +import fr.insa_toulouse.mas.benevolat.ApproveService.model.Task; @RestController @RequestMapping("approve") public class ApproveServiceRessource { - @GetMapping("getTasks/{id}") + + + //@Autowired + //private RestTemplate restTemplate; + + @GetMapping("getTasks/{adminId}") + public ArrayList getTasks(@PathVariable("adminId") Integer id) { + + //if (restTemplate.getForObject("http://Authentification/auth/isAdmin/" + id, Boolean.class)) { + return Task.getTasks(); + //} + //return null; + } + + @PutMapping("approveTask/{adminId}/{taskId}") + public void approveTask(@PathVariable("adminId") Integer adminId, @PathVariable("taskId") Integer taskId) { + //if (restTemplate.getForObject("http://Authentification/auth/isAdmin/" + id, Boolean.class)) { + Task.approveTask(taskId); + //} + //return null; + } + + @PutMapping("disapproveTask/{adminId}/{taskId}") + public void disapproveTask(@PathVariable("adminId") Integer adminId, @PathVariable("taskId") Integer taskId) { + //if (restTemplate.getForObject("http://Authentification/auth/isAdmin/" + id, Boolean.class)) { + Task.disapproveTask(taskId); + //} + //return null; + } } diff --git a/Authentication/src/main/java/fr/insa_toulouse/mas/benevolat/Authentication/model/User.java b/Authentication/src/main/java/fr/insa_toulouse/mas/benevolat/Authentication/model/User.java index 9e72417..17e7fbe 100644 --- a/Authentication/src/main/java/fr/insa_toulouse/mas/benevolat/Authentication/model/User.java +++ b/Authentication/src/main/java/fr/insa_toulouse/mas/benevolat/Authentication/model/User.java @@ -69,9 +69,6 @@ public class User { try { Statement statement = User.connection.createStatement(); ResultSet res = statement.executeQuery("Select isAdmin FROM user WHERE id = " + id + ";"); - System.out.println("Select isAdmin FROM user WHERE id = " + id + ";"); - System.out.println("number of rows = " + res.getRow()); - //result = res.getBoolean("isAdmin"); if (res.next()) { result = res.getBoolean("isAdmin"); } @@ -79,7 +76,6 @@ public class User { throw new RuntimeException(e); } - // return User.users.get(id).isAdmin; return result; }