From 5bbe6fe9672617bae26f6faef30dcef8e8ae7c38 Mon Sep 17 00:00:00 2001 From: agoer <alexander.goerlitz@student.reutlingen-university.de> Date: Sat, 15 Jun 2024 13:25:30 +0200 Subject: [PATCH] implemented delete for OPStaff. --- opp/core/src/main/java/OPStaff.java | 5 ++++- opp/core/src/main/java/OPStaffServiceImpl.java | 11 ++++++++++- opp/core/src/main/java/Repository.java | 2 ++ .../src/main/java/JDBCRepository.java | 12 ++++++++++++ opp/jdbc-repo-impl/src/test/java/Tests.java | 18 ++++++++++++++++-- 5 files changed, 44 insertions(+), 4 deletions(-) diff --git a/opp/core/src/main/java/OPStaff.java b/opp/core/src/main/java/OPStaff.java index c7d0851..3476a1e 100644 --- a/opp/core/src/main/java/OPStaff.java +++ b/opp/core/src/main/java/OPStaff.java @@ -13,7 +13,7 @@ public record OPStaff( /** * OPStaff commands */ - public static sealed interface Command permits OPStaff.CreateOPStaff, OPStaff.UpdateOPStaff { } //OPStaff.DeleteOPStaff + public static sealed interface Command permits OPStaff.CreateOPStaff, OPStaff.DeleteOPStaff, OPStaff.UpdateOPStaff { } /** * Create command to create a new Operation @@ -31,5 +31,8 @@ public record OPStaff( Optional<Specialty> specialty ) implements Command {} + public static record DeleteOPStaff( + Id<OPStaff> id + ) implements Command {} } diff --git a/opp/core/src/main/java/OPStaffServiceImpl.java b/opp/core/src/main/java/OPStaffServiceImpl.java index 51d90a5..2c62064 100644 --- a/opp/core/src/main/java/OPStaffServiceImpl.java +++ b/opp/core/src/main/java/OPStaffServiceImpl.java @@ -15,7 +15,7 @@ public class OPStaffServiceImpl implements OPStaffService{ return switch (cmd){ case OPStaff.CreateOPStaff cr -> createOPStaffimpl(cr); case OPStaff.UpdateOPStaff up -> updateOPStaffimpl(up); - //case OPStaff.Delete del -> delete(del); + case OPStaff.DeleteOPStaff del -> deleteOPStaffimpl(del); }; } @@ -47,6 +47,15 @@ public class OPStaffServiceImpl implements OPStaffService{ return opStaff; } + public OPStaff deleteOPStaffimpl(OPStaff.DeleteOPStaff del) throws Exception{ + + OPStaff opStaff = repo.findOPStaff(del.id()).get(); + + repo.deleteOPStaff(del.id()); + + return opStaff; + + } public Optional<OPStaff> getOPStaff(Id<OPStaff> id) { return repo.findOPStaff(id); diff --git a/opp/core/src/main/java/Repository.java b/opp/core/src/main/java/Repository.java index 39a7725..6b91ac7 100644 --- a/opp/core/src/main/java/Repository.java +++ b/opp/core/src/main/java/Repository.java @@ -73,4 +73,6 @@ public interface Repository { List<OPStaff> findOPStaffs(); + + void deleteOPStaff(Id<OPStaff> 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 0253e0f..f4617e7 100644 --- a/opp/jdbc-repo-impl/src/main/java/JDBCRepository.java +++ b/opp/jdbc-repo-impl/src/main/java/JDBCRepository.java @@ -536,6 +536,18 @@ class JDBCRepository implements Repository "WHERE id = " + sqlValue(opStaff.id().value()) + ";"; } + @Override + public void deleteOPStaff(Id<OPStaff> id) throws SQLException{ + + var opStaff = findOPStaff(id); + + if(opStaff.isPresent()) { + conn.createStatement().executeUpdate( + "DELETE FROM opstaff WHERE id = " + quoted(id.value()) + ";"); + + } + } + } diff --git a/opp/jdbc-repo-impl/src/test/java/Tests.java b/opp/jdbc-repo-impl/src/test/java/Tests.java index 651a2a8..e8dadf8 100644 --- a/opp/jdbc-repo-impl/src/test/java/Tests.java +++ b/opp/jdbc-repo-impl/src/test/java/Tests.java @@ -226,7 +226,7 @@ public final class Tests //assertEquals(operation.date(), testDate); } - //@Test + //@Test //getting all the OPStaffs public void testGetOPStaffs() { try{ @@ -242,7 +242,7 @@ public final class Tests //assertEquals(operation.date(), testDate); } - @Test + //@Test public void testUpdateOPStaff() throws Exception{ OPStaff.UpdateOPStaff updateCommand = new OPStaff.UpdateOPStaff( @@ -254,6 +254,20 @@ public final class Tests OPStaff updateOPStaff = opStaffService.process(updateCommand); } + + //@Test + public void testDeleteOPStaff() throws Exception{ + + var id = new Id<OPStaff>("b940de7b-a9a3-40e5-b465-12b018390061"); + + OPStaff.DeleteOPStaff deleteCommand = new OPStaff.DeleteOPStaff( + id + ); + + OPStaff deleteOPStaff = opStaffService.process(deleteCommand); + + } + } -- GitLab