From 22ff133f3f00a95459fbb939769a86a465b2b96a Mon Sep 17 00:00:00 2001
From: agoer <alexander.goerlitz@student.reutlingen-university.de>
Date: Sat, 15 Jun 2024 11:18:20 +0200
Subject: [PATCH] implemented querie for multiple OPStaff with getOPStaffs().

---
 opp/core/src/main/java/OPStaffService.java    |  2 ++
 .../src/main/java/OPStaffServiceImpl.java     |  9 +++++--
 opp/core/src/main/java/Repository.java        |  2 ++
 .../src/main/java/JDBCRepository.java         | 26 +++++++++++++++++++
 opp/jdbc-repo-impl/src/test/java/Tests.java   | 17 +++++++++++-
 5 files changed, 53 insertions(+), 3 deletions(-)

diff --git a/opp/core/src/main/java/OPStaffService.java b/opp/core/src/main/java/OPStaffService.java
index 679b57e..bde0fb8 100644
--- a/opp/core/src/main/java/OPStaffService.java
+++ b/opp/core/src/main/java/OPStaffService.java
@@ -20,4 +20,6 @@ public interface OPStaffService {
      */
     public Optional<OPStaff> getOPStaff(Id<OPStaff> id);
 
+    public List<OPStaff> getOPStaffs();
+
 }
\ No newline at end of file
diff --git a/opp/core/src/main/java/OPStaffServiceImpl.java b/opp/core/src/main/java/OPStaffServiceImpl.java
index 4b33714..b204542 100644
--- a/opp/core/src/main/java/OPStaffServiceImpl.java
+++ b/opp/core/src/main/java/OPStaffServiceImpl.java
@@ -1,5 +1,6 @@
 import java.time.Instant;
 import java.util.Optional;
+import java.util.List;
 
 public class OPStaffServiceImpl implements OPStaffService{
 
@@ -31,11 +32,15 @@ public class OPStaffServiceImpl implements OPStaffService{
         return opStaff;
     }
 
-    @Override
-    public Optional<OPStaff> getOPStaff(Id<OPStaff> id) {
 
+    public Optional<OPStaff> getOPStaff(Id<OPStaff> id) {
         return repo.findOPStaff(id);
     }
 
 
+    public List<OPStaff> getOPStaffs(){
+        return repo.findOPStaffs();
+    }
+
+
 }
diff --git a/opp/core/src/main/java/Repository.java b/opp/core/src/main/java/Repository.java
index 1d45a7e..39a7725 100644
--- a/opp/core/src/main/java/Repository.java
+++ b/opp/core/src/main/java/Repository.java
@@ -71,4 +71,6 @@ public interface Repository {
 
     Optional<OPStaff> findOPStaff(Id<OPStaff> id);
 
+    List<OPStaff> findOPStaffs();
+
 }
diff --git a/opp/jdbc-repo-impl/src/main/java/JDBCRepository.java b/opp/jdbc-repo-impl/src/main/java/JDBCRepository.java
index 4983a4d..c567680 100644
--- a/opp/jdbc-repo-impl/src/main/java/JDBCRepository.java
+++ b/opp/jdbc-repo-impl/src/main/java/JDBCRepository.java
@@ -479,6 +479,32 @@ class JDBCRepository implements Repository
     }
   }
 
+  /**
+   * Reads an OPStaff from the OPStaff-SQLTable with the given ID.
+   * If no OPStaff with this ID is found, it will return an empty Optional.
+   * @return the found Operation
+   */
+  @Override
+  public List<OPStaff> findOPStaffs(){
+    try (
+            var result =
+                    conn.createStatement()
+                            .executeQuery("SELECT * FROM opstaff;")
+    ){
+        var opStaffs = new ArrayList<OPStaff>();
+
+        while(result.next()){
+          opStaffs.add(readOPStaffFromRow(result));
+        }
+
+        return opStaffs;
+
+
+    } catch (SQLException e){
+      throw new RuntimeException(e);
+    }
+  }
+
   /**
    * Creates an Operation object with the given result of a read SQL-Row.
    * @param rs the result of a read SQL-Row
diff --git a/opp/jdbc-repo-impl/src/test/java/Tests.java b/opp/jdbc-repo-impl/src/test/java/Tests.java
index 62d3ad2..48b190b 100644
--- a/opp/jdbc-repo-impl/src/test/java/Tests.java
+++ b/opp/jdbc-repo-impl/src/test/java/Tests.java
@@ -213,7 +213,7 @@ public final class Tests
     OPStaff createOPStaff = opStaffService.process(createCommand);
   }
 
-  @Test
+  //@Test
   public void testGetOPStaff() {
 
     try{
@@ -223,7 +223,22 @@ public final class Tests
     } catch (Exception e){
       e.printStackTrace();
     }
+    //assertEquals(operation.date(), testDate);
+  }
 
+  @Test
+  public void testGetOPStaffs() {
+
+    try{
+      List<OPStaff> opStaff = opStaffService.getOPStaffs();
+
+      for(OPStaff opStaff1 : opStaff){
+        System.out.println(opStaff1);
+      }
+
+    } catch (Exception e){
+      e.printStackTrace();
+    }
     //assertEquals(operation.date(), testDate);
   }
 }
-- 
GitLab