From c14ca4d3b1f430c94bd1ead1c5b8194a93b3814a Mon Sep 17 00:00:00 2001
From: agoer <alexander.goerlitz@student.reutlingen-university.de>
Date: Fri, 21 Jun 2024 21:55:09 +0200
Subject: [PATCH] Created the method removeStaff

---
 opp/core/src/main/java/Repository.java        |  2 ++
 opp/core/src/main/java/TeamMemberImpl.java    | 11 +++-------
 .../src/main/java/JDBCRepository.java         | 20 +++++++++++++++++++
 opp/jdbc-repo-impl/src/test/java/Tests.java   | 17 +++++++++++++++-
 4 files changed, 41 insertions(+), 9 deletions(-)

diff --git a/opp/core/src/main/java/Repository.java b/opp/core/src/main/java/Repository.java
index 43f6432..92d4df3 100644
--- a/opp/core/src/main/java/Repository.java
+++ b/opp/core/src/main/java/Repository.java
@@ -96,5 +96,7 @@ public interface Repository {
 
     void saveTeamMember(TeamMember TeamMember) throws Exception;
 
+    TeamMember removeTeamMember(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 418bc31..a79d1e8 100644
--- a/opp/core/src/main/java/TeamMemberImpl.java
+++ b/opp/core/src/main/java/TeamMemberImpl.java
@@ -31,13 +31,8 @@ public class TeamMemberImpl implements TeamMemberService{
         return teammember;
     }
 
-    private TeamMember removeStaffimpl(TeamMember.RemoveStaff rs) {
-        TeamMember teammember =
-                new TeamMember(
-                        rs.operationTeamId(),
-                        rs.opStaffId(),
-                        Instant.now()
-                );
-        return teammember;
+    private TeamMember removeStaffimpl(TeamMember.RemoveStaff rs) throws Exception {
+        return 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 890f49f..47135cf 100644
--- a/opp/jdbc-repo-impl/src/main/java/JDBCRepository.java
+++ b/opp/jdbc-repo-impl/src/main/java/JDBCRepository.java
@@ -659,6 +659,26 @@ class JDBCRepository implements Repository
     }
   }
 
+  public TeamMember removeTeamMember(Id<OperationTeam> operationTeamId, Id<OPStaff> opStaffId) throws Exception{
+
+    try(
+            var stmt = conn.createStatement()
+    ){
+      //TODO
+      /*var sql =
+              findOPStaff(opStaff.id()).isPresent() ?
+                      updateOPStaffSQL(opStaff) :
+                      insertOPStaffSQL(opStaff);*/
+      var sql = "DELETE FROM opStaffsInOperationTeams WHERE operationTeamId = '"+ operationTeamId.value() +"' AND opStaffId = '"+opStaffId.value()+"';";
+
+      stmt.executeUpdate(sql);
+
+    }catch(SQLException e){
+      throw new RuntimeException(e);
+    }
+    return null;
+  }
+
   @Override
   public List<OPStaff> getOperationTeamOPStaffImpl(Id<OperationTeam> operationTeamId){
 
diff --git a/opp/jdbc-repo-impl/src/test/java/Tests.java b/opp/jdbc-repo-impl/src/test/java/Tests.java
index 4d7e5d0..b196c1b 100644
--- a/opp/jdbc-repo-impl/src/test/java/Tests.java
+++ b/opp/jdbc-repo-impl/src/test/java/Tests.java
@@ -333,7 +333,7 @@ public final class Tests
     OperationTeam deleteOperationTeam = operationTeamService.process(deleteCommand);
   }
 
-  @Test
+  //@Test
   public void testInsertTeamMember1() throws Exception{
 
     try {
@@ -343,6 +343,21 @@ public final class Tests
     }
   }
 
+  @Test
+  public void testRemoveTeamMember() throws Exception{
+
+    var opStaffId = new Id<OPStaff>("4444");
+    var operationTeamId = new Id<OperationTeam>("31");
+
+    TeamMember.RemoveStaff deleteCommand = new TeamMember.RemoveStaff(
+            operationTeamId,
+            opStaffId
+    );
+
+    TeamMember deleteTeamMember = teamMemberService.process(deleteCommand);
+
+  }
+
   //@Test
   public void testGetOperationTeam() throws Exception{
 
-- 
GitLab