From 26f5e9c744e6ab1f962bfecdf821ab39d71e09b0 Mon Sep 17 00:00:00 2001
From: agoer <alexander.goerlitz@student.reutlingen-university.de>
Date: Tue, 18 Jun 2024 21:19:30 +0200
Subject: [PATCH] Implemented in operationteam
 getOperationTeam(operationteamid)

---
 opp/core/src/main/java/OperationTeamImpl.java |  4 +--
 .../src/main/java/OperationTeamService.java   |  3 ++-
 opp/core/src/main/java/Repository.java        |  2 ++
 .../src/main/java/JDBCRepository.java         | 25 +++++++++++++++++++
 opp/jdbc-repo-impl/src/test/java/Tests.java   | 19 +++++++++++++-
 5 files changed, 49 insertions(+), 4 deletions(-)

diff --git a/opp/core/src/main/java/OperationTeamImpl.java b/opp/core/src/main/java/OperationTeamImpl.java
index 101be27..dd0a216 100644
--- a/opp/core/src/main/java/OperationTeamImpl.java
+++ b/opp/core/src/main/java/OperationTeamImpl.java
@@ -20,8 +20,8 @@ public class OperationTeamImpl implements OperationTeamService{
     }
 
     @Override
-    public Optional<OperationTeam> getOperationTeam(Id<OperationTeam> operationTeamId) {
-        return null; //repo.findOperationTeam(operationTeamId);
+    public Optional<OperationTeam> getOperationTeam(Id<OperationTeam> operationTeamId) throws SQLException {
+        return repo.getOperationTeamImp(operationTeamId); //repo.findOperationTeam(operationTeamId);
     }
 
     private OperationTeam deleteOperationTeamimpl(OperationTeam.DeleteTeam del)  throws SQLException {
diff --git a/opp/core/src/main/java/OperationTeamService.java b/opp/core/src/main/java/OperationTeamService.java
index b4c3b30..6a9a4e6 100644
--- a/opp/core/src/main/java/OperationTeamService.java
+++ b/opp/core/src/main/java/OperationTeamService.java
@@ -1,10 +1,11 @@
+import java.sql.SQLException;
 import java.util.Optional;
 
 public interface OperationTeamService {
 
     public OperationTeam process(OperationTeam.Command cmd) throws Exception;
 
-    public Optional<OperationTeam> getOperationTeam(Id<OperationTeam> operationTeamId);
+    public Optional<OperationTeam> getOperationTeam(Id<OperationTeam> operationTeamId) throws SQLException;
 
     public Optional<OperationTeam> getOperationTeams();
 
diff --git a/opp/core/src/main/java/Repository.java b/opp/core/src/main/java/Repository.java
index 0ed87a3..28ef7b3 100644
--- a/opp/core/src/main/java/Repository.java
+++ b/opp/core/src/main/java/Repository.java
@@ -84,6 +84,8 @@ public interface Repository {
 
     OperationTeam deleteOperationTeam(Id<OperationTeam> id) throws SQLException;
 
+    Optional<OperationTeam> getOperationTeamImp(Id<OperationTeam> id) throws SQLException;
+
 
 
 
diff --git a/opp/jdbc-repo-impl/src/main/java/JDBCRepository.java b/opp/jdbc-repo-impl/src/main/java/JDBCRepository.java
index 83ee348..615d09f 100644
--- a/opp/jdbc-repo-impl/src/main/java/JDBCRepository.java
+++ b/opp/jdbc-repo-impl/src/main/java/JDBCRepository.java
@@ -623,6 +623,31 @@ class JDBCRepository implements Repository
     );
   """;
 
+  public Optional<OperationTeam> getOperationTeamImp(Id<OperationTeam> id) throws SQLException{
+
+    try(
+            var result =
+                    conn.createStatement()
+                            .executeQuery("SELECT * FROM operationteam WHERE id = " + sqlValue(id.value()) + ";");
+            ){
+      return
+              result.next() ?
+                      Optional.of(readOperationTeamFromRow(result)):
+                      Optional.empty();}
+    catch(SQLException e){
+      throw new RuntimeException(e);
+    }
+  }
+
+  private static OperationTeam readOperationTeamFromRow(ResultSet rs) throws SQLException{
+
+    return new OperationTeam(
+            new Id<>(rs.getString("id")),
+            rs.getString("teamname"),
+            rs.getTimestamp("lastupdate").toInstant()
+    );
+  }
+
 
 
 
diff --git a/opp/jdbc-repo-impl/src/test/java/Tests.java b/opp/jdbc-repo-impl/src/test/java/Tests.java
index 29eb524..a9887fa 100644
--- a/opp/jdbc-repo-impl/src/test/java/Tests.java
+++ b/opp/jdbc-repo-impl/src/test/java/Tests.java
@@ -315,7 +315,7 @@ public final class Tests
     OperationTeam deleteOperationTeam = operationTeamService.process(deleteCommand);
   }
 
-  @Test
+  //@Test
   public void testInsertTeamMember1() throws Exception{
 
     try {
@@ -323,11 +323,28 @@ public final class Tests
     } catch (Exception e){
       e.printStackTrace();
     }
+  }
 
+  @Test
+  public void testGetOperationTeam() throws Exception{
+
+    var id = new Id<OperationTeam>("31313131");
+
+    try{
+      Optional<OperationTeam> operationTeam = operationTeamService.getOperationTeam(id);
+
+      //for(OPStaff opStaff1 : opStaff){
+        System.out.println(operationTeam);
+      //}
+
+    } catch (Exception e){
+      e.printStackTrace();
+    }
 
   }
 
 
+
 }
 
 
-- 
GitLab