From f076a5907cd725ba255eaec118f46841fa192102 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Sat, 11 Nov 2023 18:56:14 +0100 Subject: [PATCH] schedule-refactor (#45) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Sebastian Böckelmann Reviewed-on: https://git.fawkes100.de/Sebastian/TimeManager/pulls/45 --- .gitignore | 57 +-- backend/.idea/workspace.xml | 155 ++++--- .../api/controller/ScheduleController.java | 329 +++++++------- .../core/api/controller/TaskController.java | 2 - ...dInfo.java => BasicScheduleFieldInfo.java} | 10 +- .../taskSchedule/BasicScheduleInfo.java | 29 ++ .../taskSchedule/BasicScheduleShortInfo.java | 22 - .../BasicTaskScheduleEntityInfo.java | 53 --- .../taskSchedule/ForgottenActivity.java | 22 - .../taskSchedule/ForgottenActivityMode.java | 8 - .../taskSchedule/ForgottenScheduleInfo.java | 38 ++ ...nfo.java => ScheduleActivateResponse.java} | 9 +- ...eShortInfo.java => ScheduleFieldInfo.java} | 2 +- .../taskSchedule/ScheduleInfo.java | 106 +---- .../taskSchedule/ScheduleStatus.java | 28 -- .../taskSchedule/ScheduleType.java | 8 + .../TaskScheduleStopResponse.java | 14 +- .../timemanager/AbstractSchedule.java | 112 +++++ .../timemanager/AdvancedTaskSchedule.java | 24 + .../timemanager/BasicTaskSchedule.java | 98 ++--- .../java/core/entities/timemanager/Task.java | 39 +- .../BasicTaskScheduleRepository.java | 45 -- .../timemanager/ScheduleRepository.java | 20 + .../core/services/TaskScheduleService.java | 258 ++++------- .../main/java/core/services/TaskService.java | 9 +- .../schedules/ScheduleRepositoryTest.java | 57 +++ .../core/schedules/ScheduleServiceTest.java | 237 ++++++++++ .../test/resources/basicScheduleEntries.sql | 8 + .../test/resources/taskRepositoryEntries.sql | 2 + .../taskgroupRepositoryTestEntries.sql | 5 +- frontend/src/api/.openapi-generator/FILES | 2 + frontend/src/api/api/schedule.service.ts | 413 +++++++++--------- frontend/src/api/model/basicScheduleInfo.ts | 52 +++ .../src/api/model/basicScheduleInfoAllOf.ts | 17 + .../src/api/model/forgottenActivityRequest.ts | 17 +- frontend/src/api/model/models.ts | 2 + frontend/src/api/model/scheduleInfo.ts | 2 - .../src/app/dashboard/dashboard.component.ts | 2 +- ...forgotten-task-start-dialog.component.html | 2 +- .../forgotten-task-start-dialog.component.ts | 15 +- .../missed-schedules.component.html | 2 +- .../missed-schedules.component.ts | 8 +- .../basic-scheduler.component.ts | 14 +- .../schedule-dashboard.component.html | 16 +- .../schedule-dashboard.component.ts | 20 +- .../scheduler/scheduler.component.ts | 33 +- openapi.yaml | 82 ++-- 47 files changed, 1377 insertions(+), 1128 deletions(-) rename backend/src/main/java/core/api/models/timemanager/taskSchedule/{BasicTaskScheduleFieldInfo.java => BasicScheduleFieldInfo.java} (62%) create mode 100644 backend/src/main/java/core/api/models/timemanager/taskSchedule/BasicScheduleInfo.java delete mode 100644 backend/src/main/java/core/api/models/timemanager/taskSchedule/BasicScheduleShortInfo.java delete mode 100644 backend/src/main/java/core/api/models/timemanager/taskSchedule/BasicTaskScheduleEntityInfo.java delete mode 100644 backend/src/main/java/core/api/models/timemanager/taskSchedule/ForgottenActivity.java delete mode 100644 backend/src/main/java/core/api/models/timemanager/taskSchedule/ForgottenActivityMode.java create mode 100644 backend/src/main/java/core/api/models/timemanager/taskSchedule/ForgottenScheduleInfo.java rename backend/src/main/java/core/api/models/timemanager/taskSchedule/{ScheduleActivateInfo.java => ScheduleActivateResponse.java} (69%) rename backend/src/main/java/core/api/models/timemanager/taskSchedule/{AbstractScheduleShortInfo.java => ScheduleFieldInfo.java} (51%) delete mode 100644 backend/src/main/java/core/api/models/timemanager/taskSchedule/ScheduleStatus.java create mode 100644 backend/src/main/java/core/api/models/timemanager/taskSchedule/ScheduleType.java create mode 100644 backend/src/main/java/core/entities/timemanager/AbstractSchedule.java create mode 100644 backend/src/main/java/core/entities/timemanager/AdvancedTaskSchedule.java delete mode 100644 backend/src/main/java/core/repositories/timemanager/BasicTaskScheduleRepository.java create mode 100644 backend/src/main/java/core/repositories/timemanager/ScheduleRepository.java create mode 100644 backend/src/test/java/core/schedules/ScheduleRepositoryTest.java create mode 100644 backend/src/test/java/core/schedules/ScheduleServiceTest.java create mode 100644 backend/src/test/resources/basicScheduleEntries.sql create mode 100644 frontend/src/api/model/basicScheduleInfo.ts create mode 100644 frontend/src/api/model/basicScheduleInfoAllOf.ts diff --git a/.gitignore b/.gitignore index 301464f..9a934a1 100644 --- a/.gitignore +++ b/.gitignore @@ -27,44 +27,45 @@ replay_pid* # ---> JetBrains # Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider # Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 -.idea/ +**/.idea/ # User-specific stff -.idea/**/workspace.xml -.idea/**/tasks.xml -.idea/**/usage.statistics.xml -.idea/**/dictionaries -.idea/**/shelf +**/.idea/**/workspace.xml +**/.idea/**/tasks.xml +**/.idea/**/usage.statistics.xml +**/.idea/**/dictionaries +**/.idea/**/shelf # AWS User-specific -.idea/**/aws.xml +**/.idea/**/aws.xml # Generated files -.idea/**/contentModel.xml +**/.idea/**/contentModel.xml # Sensitive or high-churn files -.idea/**/dataSources/ -.idea/**/dataSources.ids -.idea/**/dataSources.local.xml -.idea/**/sqlDataSources.xml -.idea/**/dynamic.xml -.idea/**/uiDesigner.xml -.idea/**/dbnavigator.xml +**/.idea/**/dataSources/ +**/.idea/**/dataSources.ids +**/.idea/**/dataSources.local.xml +**/.idea/**/sqlDataSources.xml +**/.idea/**/dynamic.xml +**/.idea/**/uiDesigner.xml +**/.idea/**/dbnavigator.xml # Gradle -.idea/**/gradle.xml -.idea/**/libraries +**/.idea/**/gradle.xml +**/.idea/**/libraries + # Gradle and Maven with auto-import # When using Gradle or Maven with auto-import, you should exclude module files, # since they will be recreated, and may cause churn. Uncomment if using # auto-import. -# .idea/artifacts -# .idea/compiler.xml -# .idea/jarRepositories.xml -# .idea/modules.xml -# .idea/*.iml -# .idea/modules +# **/.idea/artifacts +# **/.idea/compiler.xml +# **/.idea/jarRepositories.xml +# **/.idea/modules.xml +# **/.idea/*.iml +# **/.idea/modules # *.iml # *.ipr @@ -72,7 +73,7 @@ replay_pid* cmake-build-*/ # Mongo Explorer plugin -.idea/**/mongoSettings.xml +**/.idea/**/mongoSettings.xml # File-based project format *.iws @@ -87,10 +88,10 @@ out/ atlassian-ide-plugin.xml # Cursive Clojure plugin -.idea/replstate.xml +**/.idea/replstate.xml # SonarLint plugin -.idea/sonarlint/ +**/.idea/sonarlint/ # Crashlytics plugin (for Android Studio and IntelliJ) com_crashlytics_export_strings.xml @@ -99,10 +100,10 @@ crashlytics-build.properties fabric.properties # Editor-based Rest Client -.idea/httpRequests +**/.idea/httpRequests # Android studio 3.1+ serialized cache file -.idea/caches/build_file_checksums.ser +**/.idea/caches/build_file_checksums.ser # ---> Maven target/ diff --git a/backend/.idea/workspace.xml b/backend/.idea/workspace.xml index fc7a90a..ebfaa2e 100644 --- a/backend/.idea/workspace.xml +++ b/backend/.idea/workspace.xml @@ -4,9 +4,13 @@