From 25ba47f1b693ecd22764bd799b95496de29daed9 Mon Sep 17 00:00:00 2001
From: agoer <alexander.goerlitz@student.reutlingen-university.de>
Date: Wed, 26 Jun 2024 00:49:47 +0200
Subject: [PATCH] Updated removeOPStaffsinOperationTeams() and implemented
 getOperationTeam in JDBCRepository

---
 opp/core/src/main/java/OperationTeamImpl.java |  8 ++++++-
 opp/core/src/main/java/Repository.java        |  4 +++-
 opp/core/src/main/java/TeamMemberImpl.java    |  2 +-
 .../src/main/java/JDBCRepository.java         | 24 +++++++++++++++++--
 opp/jdbc-repo-impl/src/test/java/Tests.java   | 17 ++++++-------
 5 files changed, 42 insertions(+), 13 deletions(-)

diff --git a/opp/core/src/main/java/OperationTeamImpl.java b/opp/core/src/main/java/OperationTeamImpl.java
index 4905ad5..83073d2 100644
--- a/opp/core/src/main/java/OperationTeamImpl.java
+++ b/opp/core/src/main/java/OperationTeamImpl.java
@@ -46,7 +46,13 @@ public class OperationTeamImpl implements OperationTeamService{
         }
     }
 
-    private OperationTeam removeStaff(OperationTeam.RemoveStaff rs) {
+    private OperationTeam removeStaff(OperationTeam.RemoveStaff rs) throws Exception {
+
+        OperationTeam findOperationTeam = repo.getOperationTeam(rs.operationTeamId());
+
+        if(repo.removeopStaffsInOperationTeams(rs.operationTeamId(), rs.opStaff().id())){
+            return findOperationTeam;
+        }
         return null;
     }
 
diff --git a/opp/core/src/main/java/Repository.java b/opp/core/src/main/java/Repository.java
index 054da27..6b4b527 100644
--- a/opp/core/src/main/java/Repository.java
+++ b/opp/core/src/main/java/Repository.java
@@ -89,6 +89,8 @@ public interface Repository {
 
     OperationTeam deleteOperationTeam(Id<OperationTeam> id) throws SQLException;
 
+    OperationTeam getOperationTeam(Id<OperationTeam> id);
+
 
     //Id<String> opStaffsInOperationTeamsId();
 
@@ -105,7 +107,7 @@ public interface Repository {
 
     TeamMember saveTeamMember(TeamMember TeamMember) throws Exception;
 
-    TeamMember removeTeamMember(Id<OperationTeam> operationTeamId, Id<OPStaff> opStaffId) throws Exception;
+    Boolean removeopStaffsInOperationTeams(Id<OperationTeam> operationTeamId, Id<OPStaff> opStaffId) throws Exception;
 
     List<OPStaff> getOperationTeamOPStaffImpl(Id<OperationTeam> operationTeamId);
 }
diff --git a/opp/core/src/main/java/TeamMemberImpl.java b/opp/core/src/main/java/TeamMemberImpl.java
index 9ed4911..a2cdd6f 100644
--- a/opp/core/src/main/java/TeamMemberImpl.java
+++ b/opp/core/src/main/java/TeamMemberImpl.java
@@ -34,7 +34,7 @@ public class TeamMemberImpl implements TeamMemberService{
 
 
     private TeamMember removeStaffimpl(TeamMember.RemoveStaff rs) throws Exception {
-        return repo.removeTeamMember(rs.operationTeamId(), rs.opStaffId());
+        return null; //repo.removeTeamMember(rs.operationTeamId(), rs.opStaffId());
 
     }
 }
diff --git a/opp/jdbc-repo-impl/src/main/java/JDBCRepository.java b/opp/jdbc-repo-impl/src/main/java/JDBCRepository.java
index daf3079..b1ead71 100644
--- a/opp/jdbc-repo-impl/src/main/java/JDBCRepository.java
+++ b/opp/jdbc-repo-impl/src/main/java/JDBCRepository.java
@@ -616,6 +616,25 @@ class JDBCRepository implements Repository
     }
   }
 
+  public OperationTeam getOperationTeam(Id<OperationTeam> id){
+    try(
+            var result =
+                    conn.createStatement()
+                            .executeQuery("SELECT * FROM operationTeams WHERE id = " + sqlValue(id.value()) + ";")
+    ) {
+
+      OperationTeam operationTeam = null;
+
+      while (result.next()) {
+        operationTeam = readOperationTeamFromRow(result);
+      }
+      return operationTeam;
+
+    }catch(SQLException e){
+      throw new RuntimeException(e);
+    }
+  }
+//.executeQuery("SELECT * FROM operationTeams WHERE id = " + sqlValue(id.value()) + ";")
   @Override
   public List<OperationTeam> findOperationTeams() {
     try(
@@ -754,7 +773,7 @@ class JDBCRepository implements Repository
     return TeamMember;
   }
 
-  public TeamMember removeTeamMember(Id<OperationTeam> operationTeamId, Id<OPStaff> opStaffId) throws Exception{
+  public Boolean removeopStaffsInOperationTeams(Id<OperationTeam> operationTeamId, Id<OPStaff> opStaffId) throws Exception{
 
     try(
             var stmt = conn.createStatement()
@@ -768,10 +787,11 @@ class JDBCRepository implements Repository
 
       stmt.executeUpdate(sql);
 
+      return true;
+
     }catch(SQLException e){
       throw new RuntimeException(e);
     }
-    return null;
   }
 
   @Override
diff --git a/opp/jdbc-repo-impl/src/test/java/Tests.java b/opp/jdbc-repo-impl/src/test/java/Tests.java
index 4fd5d28..dc12786 100644
--- a/opp/jdbc-repo-impl/src/test/java/Tests.java
+++ b/opp/jdbc-repo-impl/src/test/java/Tests.java
@@ -256,6 +256,8 @@ public final class Tests
     }
   }
 
+
+@Ignore
   @Test
   public void testAssignStaffToOperationTeam() throws Exception {
 
@@ -404,19 +406,18 @@ public final class Tests
     }*/
   }
 
-  //@Test
-  public void testRemoveTeamMember() throws Exception{
 
-    var opStaffId = new Id<OPStaff>("4444");
-    var operationTeamId = new Id<OperationTeam>("31");
+  @Test
+  public void testRemoveopStaffsInOperationTeams() throws Exception{
 
-    TeamMember.RemoveStaff deleteCommand = new TeamMember.RemoveStaff(
-            operationTeamId,
-            opStaffId
+    OperationTeam.RemoveStaff removeStaffCommand= new OperationTeam.RemoveStaff(
+            testOperationTeam.id(),
+            testOPStaff
     );
 
-    TeamMember deleteTeamMember = teamMemberService.process(deleteCommand);
+    OperationTeam removedTeam = operationTeamService.process(removeStaffCommand);
 
+    assertEquals(testOperationTeam.id().value(), removedTeam.id().value());
   }
 
   //@Test
-- 
GitLab