From 7e8534987765ec93033240da9d64b03495701ed8 Mon Sep 17 00:00:00 2001 From: Andre Hartig <andre.hartig@student.reutlingen-university.de> Date: Sun, 2 Jun 2024 15:14:14 +0200 Subject: [PATCH] Added the remaining classes and a ObjectTimestamp to track object modifications. --- opp/core/src/main/java/OPStaff.java | 7 +++++++ opp/core/src/main/java/ObjectModification.java | 5 +++++ opp/core/src/main/java/ObjectTimestamp.java | 7 +++++++ opp/core/src/main/java/Operation.java | 3 ++- opp/core/src/main/java/OperationTeam.java | 8 ++++++++ opp/core/src/main/java/Patient.java | 14 -------------- opp/core/src/main/java/PreparationNote.java | 9 +++++++++ opp/core/src/main/java/Role.java | 4 ++++ opp/core/src/main/java/Room.java | 6 ++++++ .../src/main/java/JDBCRepository.java | 17 ++++++++++++----- opp/jdbc-repo-impl/src/test/java/Tests.java | 18 ++++++++++++++---- 11 files changed, 74 insertions(+), 24 deletions(-) create mode 100644 opp/core/src/main/java/OPStaff.java create mode 100644 opp/core/src/main/java/ObjectModification.java create mode 100644 opp/core/src/main/java/ObjectTimestamp.java create mode 100644 opp/core/src/main/java/OperationTeam.java create mode 100644 opp/core/src/main/java/PreparationNote.java create mode 100644 opp/core/src/main/java/Role.java create mode 100644 opp/core/src/main/java/Room.java diff --git a/opp/core/src/main/java/OPStaff.java b/opp/core/src/main/java/OPStaff.java new file mode 100644 index 0000000..4e94207 --- /dev/null +++ b/opp/core/src/main/java/OPStaff.java @@ -0,0 +1,7 @@ +public record OPStaff( + Id<OPStaff> opStaffId, + Role role, + String specialty, + ObjectTimestamp lastUpdate +) { +} diff --git a/opp/core/src/main/java/ObjectModification.java b/opp/core/src/main/java/ObjectModification.java new file mode 100644 index 0000000..98bf4a6 --- /dev/null +++ b/opp/core/src/main/java/ObjectModification.java @@ -0,0 +1,5 @@ +public enum ObjectModification { + CREATE, + UPDATE, + DELETE +} diff --git a/opp/core/src/main/java/ObjectTimestamp.java b/opp/core/src/main/java/ObjectTimestamp.java new file mode 100644 index 0000000..d57a873 --- /dev/null +++ b/opp/core/src/main/java/ObjectTimestamp.java @@ -0,0 +1,7 @@ +import java.time.LocalDateTime; + +public record ObjectTimestamp( + LocalDateTime timestamp, + ObjectModification objectModification +) { +} diff --git a/opp/core/src/main/java/Operation.java b/opp/core/src/main/java/Operation.java index ffe0b18..20d548f 100644 --- a/opp/core/src/main/java/Operation.java +++ b/opp/core/src/main/java/Operation.java @@ -13,7 +13,8 @@ public record Operation( Id<Operation> id, LocalDate date, LocalTime startTime, - LocalTime endTime + LocalTime endTime, + ObjectTimestamp lastUpdate ) { /** diff --git a/opp/core/src/main/java/OperationTeam.java b/opp/core/src/main/java/OperationTeam.java new file mode 100644 index 0000000..95da2c0 --- /dev/null +++ b/opp/core/src/main/java/OperationTeam.java @@ -0,0 +1,8 @@ +import java.util.List; + +public record OperationTeam( + Id<OperationTeam> operationTeamId, + List<OPStaff> opStaffList, + ObjectTimestamp lastUpdate +) { +} diff --git a/opp/core/src/main/java/Patient.java b/opp/core/src/main/java/Patient.java index 28ad22a..71e747b 100644 --- a/opp/core/src/main/java/Patient.java +++ b/opp/core/src/main/java/Patient.java @@ -4,26 +4,12 @@ import com.fasterxml.jackson.annotation.JsonProperty; import java.time.LocalDate; public record Patient ( - @JsonProperty Id<Patient> id, - - @JsonProperty Gender gender, - - @JsonProperty String givenName, - - @JsonProperty String familyName, - - @JsonProperty - @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd") LocalDate birthDate, - - @JsonProperty Address address, - - @JsonProperty String healthInsurance ) { } diff --git a/opp/core/src/main/java/PreparationNote.java b/opp/core/src/main/java/PreparationNote.java new file mode 100644 index 0000000..9c368d1 --- /dev/null +++ b/opp/core/src/main/java/PreparationNote.java @@ -0,0 +1,9 @@ +import java.time.LocalDateTime; + +public record PreparationNote( + Id<PreparationNote> preparationNoteId, + String text, + Operation operationId, + ObjectTimestamp lastUpdate +) { +} diff --git a/opp/core/src/main/java/Role.java b/opp/core/src/main/java/Role.java new file mode 100644 index 0000000..a18e09d --- /dev/null +++ b/opp/core/src/main/java/Role.java @@ -0,0 +1,4 @@ +public enum Role { + SURGEON, + ASSISTANT +} diff --git a/opp/core/src/main/java/Room.java b/opp/core/src/main/java/Room.java new file mode 100644 index 0000000..856b8f0 --- /dev/null +++ b/opp/core/src/main/java/Room.java @@ -0,0 +1,6 @@ +public record Room( + Id<Room> roomId, + String roomName, + ObjectTimestamp lastUpdate +) { +} diff --git a/opp/jdbc-repo-impl/src/main/java/JDBCRepository.java b/opp/jdbc-repo-impl/src/main/java/JDBCRepository.java index 7e3abea..02fb60f 100644 --- a/opp/jdbc-repo-impl/src/main/java/JDBCRepository.java +++ b/opp/jdbc-repo-impl/src/main/java/JDBCRepository.java @@ -331,11 +331,18 @@ class JDBCRepository implements Repository @Override public List<Operation> findOperations(Operation.Filter filter) { - var sql = "SELECT * FROM operations WHERE date = " + - sqlValue(filter.date()). - replace("Optional", ""). - replace("[", ""). - replace("]", "") + ";"; + var sql = ""; + + if(filter.equals(Operation.Filter.NONE)) { + sql = "SELECT * FROM operations;"; + + } else { + sql = "SELECT * FROM operations WHERE date = " + + sqlValue(filter.date()). + replace("Optional", ""). + replace("[", ""). + replace("]", "") + ";"; + } try ( var resultSet = diff --git a/opp/jdbc-repo-impl/src/test/java/Tests.java b/opp/jdbc-repo-impl/src/test/java/Tests.java index 3a51047..1a7a662 100644 --- a/opp/jdbc-repo-impl/src/test/java/Tests.java +++ b/opp/jdbc-repo-impl/src/test/java/Tests.java @@ -97,23 +97,33 @@ public final class Tests @Test public void testCreateOperation() throws Exception { + Operation.Command createCommand = new Operation.Create( LocalDate.of(2025, 05, 11), LocalTime.of(10, 30, 00), LocalTime.of(11, 00, 00)); - Operation operation = opService.process(createCommand); + Operation createOperation = opService.process(createCommand); + + System.out.println(createOperation); - System.out.println(operation); + assertTrue( + repo.findOperation(createOperation.id()).isPresent() + ); } @Test public void testGetOperations() { - Operation.Filter filter = new Operation.Filter(Optional.of(LocalDate.of(2024, 05, 24))); + LocalDate testDate = LocalDate.of(2024, 05, 24); + Operation.Filter filter = new Operation.Filter(Optional.of(testDate)); +// Operation.Filter filter = Operation.Filter.NONE; List<Operation> operations = opService.getOperations(filter); - for (Operation operation : operations) + for (Operation operation : operations) { System.out.println(operation); + assertEquals(operation.date(), testDate); + } + } } -- GitLab