From 6ca3426bc7bd01530ae8adf29344b6ed6a61ce8f Mon Sep 17 00:00:00 2001 From: agoer <alexander.goerlitz@student.reutlingen-university.de> Date: Tue, 18 Jun 2024 23:03:25 +0200 Subject: [PATCH] Implemented fully teamMember and created the method getOperationTeamOPStaff(Id<OperationTeam>) --- .../src/main/java/OperationTeamService.java | 3 -- opp/core/src/main/java/Repository.java | 2 ++ opp/core/src/main/java/TeamMemberImpl.java | 6 ++++ opp/core/src/main/java/TeamMemberService.java | 4 +++ .../src/main/java/JDBCRepository.java | 28 +++++++++++++++++++ opp/jdbc-repo-impl/src/test/java/Tests.java | 26 ++++++++++++++--- 6 files changed, 62 insertions(+), 7 deletions(-) diff --git a/opp/core/src/main/java/OperationTeamService.java b/opp/core/src/main/java/OperationTeamService.java index 59cbfef..4a77bbd 100644 --- a/opp/core/src/main/java/OperationTeamService.java +++ b/opp/core/src/main/java/OperationTeamService.java @@ -10,7 +10,4 @@ public interface OperationTeamService { public List<OperationTeam> getOperationTeams() throws SQLException; - //public Optional<OPStaff> getOperationTeamOPStaff(Id<OperationTeam> operationTeamId); - - } diff --git a/opp/core/src/main/java/Repository.java b/opp/core/src/main/java/Repository.java index f540cac..7baa7b3 100644 --- a/opp/core/src/main/java/Repository.java +++ b/opp/core/src/main/java/Repository.java @@ -93,4 +93,6 @@ public interface Repository { Id<TeamMember> teamMemberId(); void saveTeamMember(TeamMember teamMember) 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 d4ea406..2f4a271 100644 --- a/opp/core/src/main/java/TeamMemberImpl.java +++ b/opp/core/src/main/java/TeamMemberImpl.java @@ -1,4 +1,5 @@ import java.time.Instant; +import java.util.List; public class TeamMemberImpl implements TeamMemberService{ @@ -15,6 +16,11 @@ public class TeamMemberImpl implements TeamMemberService{ }; } + @Override + public List<OPStaff> getOperationTeamOPStaff(Id<OperationTeam> operationTeamId) { + return repo.getOperationTeamOPStaffImpl(operationTeamId); + } + private TeamMember assignStaffimpl(TeamMember.AssignStaff as) { TeamMember teammember = new TeamMember( diff --git a/opp/core/src/main/java/TeamMemberService.java b/opp/core/src/main/java/TeamMemberService.java index faa401b..ac73201 100644 --- a/opp/core/src/main/java/TeamMemberService.java +++ b/opp/core/src/main/java/TeamMemberService.java @@ -1,4 +1,8 @@ +import java.util.List; + public interface TeamMemberService { public TeamMember process(TeamMember.Command cmd) throws Exception; + + List<OPStaff> getOperationTeamOPStaff(Id<OperationTeam> operationTeamId); } diff --git a/opp/jdbc-repo-impl/src/main/java/JDBCRepository.java b/opp/jdbc-repo-impl/src/main/java/JDBCRepository.java index eb7e067..ff3928c 100644 --- a/opp/jdbc-repo-impl/src/main/java/JDBCRepository.java +++ b/opp/jdbc-repo-impl/src/main/java/JDBCRepository.java @@ -730,6 +730,34 @@ class JDBCRepository implements Repository ); """; + @Override + public List<OPStaff> getOperationTeamOPStaffImpl(Id<OperationTeam> operationTeamId){ + + try( + var result = + conn.createStatement() + .executeQuery("SELECT DISTINCT opstaff.id, opstaff.role, opstaff.specialty, opstaff.lastupdate " + + "FROM opstaff " + + "JOIN teammember " + + "ON (opstaff.id = teammember.opstaffid) " + + "WHERE teammember.operationteamid= " + sqlValue(operationTeamId.value()) + ";"); + ) { + //SELECT DISTINCT opstaff.id, opstaff.role, opstaff.specialty, opstaff.lastupdate, teammember.operationteamid FROM opstaff JOIN teammember ON (opstaff.id = teammember.opstaffid); + //SELECT DISTINCT opstaff.id, opstaff.role, opstaff.specialty, opstaff.lastupdate, teammember.operationteamid FROM opstaff JOIN teammember ON (opstaff.id = teammember.opstaffid) WHERE teammember.operationteamid= '31313131'; + var opStaffs = new ArrayList<OPStaff>(); + + while (result.next()) { + opStaffs.add(readOPStaffFromRow(result)); + } + return opStaffs; + }catch(SQLException e){ + throw new RuntimeException(e); + } + } + + + + } diff --git a/opp/jdbc-repo-impl/src/test/java/Tests.java b/opp/jdbc-repo-impl/src/test/java/Tests.java index fd5c130..6f30ff0 100644 --- a/opp/jdbc-repo-impl/src/test/java/Tests.java +++ b/opp/jdbc-repo-impl/src/test/java/Tests.java @@ -52,8 +52,8 @@ public final class Tests opService = new OperationServiceImpl(repo); testOPStaff = new OPStaff( - new Id<>("3333"), - Role.SURGEON, + new Id<>("4444"), + Role.ASSISTANT, Specialty.urology, Instant.now()); @@ -70,12 +70,14 @@ public final class Tests }; testTeamMember = new TeamMember( - new Id<>("newTeamMember1"), + new Id<>("TeamMember2"), testOperationTeam.operationTeamId(), testOPStaff.id(), Instant.now() ); + teamMemberService = new TeamMemberImpl(repo); + } //@Test @@ -342,7 +344,7 @@ public final class Tests } } - @Test + //@Test public void testGetMultipleOperationTeams() throws Exception{ @@ -356,7 +358,23 @@ public final class Tests } catch (Exception e){ e.printStackTrace(); } + } + + @Test + public void testGetTeamMemberFromTeam() throws Exception{ + + var id = new Id<OperationTeam>("31313131"); + + try{ + List<OPStaff> opStaff = teamMemberService.getOperationTeamOPStaff(id); + + for(OPStaff opStaffs1 : opStaff){ + System.out.println(opStaffs1); + } + } catch (Exception e){ + e.printStackTrace(); + } } -- GitLab