diff --git a/backend/src/main/java/core/api/controller/TaskgroupController.java b/backend/src/main/java/core/api/controller/TaskgroupController.java index 0448065..bd53a1e 100644 --- a/backend/src/main/java/core/api/controller/TaskgroupController.java +++ b/backend/src/main/java/core/api/controller/TaskgroupController.java @@ -55,4 +55,19 @@ public class TaskgroupController { return ResponseEntity.status(409).body(new SimpleStatusResponse("failed")); } } + + @DeleteMapping("/taskgroups/{taskgroupID}") + public ResponseEntity deleteTaskgroup(@PathVariable long taskgroupID) { + PermissionResult taskgroupPermissionResult = taskgroupService.getTaskgroupByIDAndUsername(taskgroupID, SecurityContextHolder.getContext().getAuthentication().getName()); + if (!taskgroupPermissionResult.isHasPermissions()) { + return ResponseEntity.status(403).body(new SimpleStatusResponse("failed")); + } + + if(taskgroupPermissionResult.getExitCode() == ServiceExitCode.MISSING_ENTITY) { + return ResponseEntity.status(404).body(new SimpleStatusResponse("failed")); + } + + taskgroupService.deleteTaskgroup(taskgroupPermissionResult.getResult()); + return ResponseEntity.ok(new SimpleStatusResponse("success")); + } } diff --git a/backend/src/main/java/core/services/TaskgroupService.java b/backend/src/main/java/core/services/TaskgroupService.java index 20c3579..5a224cd 100644 --- a/backend/src/main/java/core/services/TaskgroupService.java +++ b/backend/src/main/java/core/services/TaskgroupService.java @@ -62,4 +62,8 @@ public class TaskgroupService { return ServiceExitCode.OK; } } + + public void deleteTaskgroup(Taskgroup taskgroup) { + taskgroupRepository.delete(taskgroup); + } }