From 9a67dfb875bb2c1daaf7b7b4000a91b2c55834fb Mon Sep 17 00:00:00 2001 From: Sebastian Date: Mon, 25 Sep 2023 11:49:28 +0200 Subject: [PATCH] Delete Taskgroups when deleting corresponding user --- .../core/repositories/timemanager/TaskgroupRepository.java | 6 ++++++ backend/src/main/java/core/services/TaskgroupService.java | 4 ++++ backend/src/main/java/core/services/UserService.java | 3 +++ 3 files changed, 13 insertions(+) diff --git a/backend/src/main/java/core/repositories/timemanager/TaskgroupRepository.java b/backend/src/main/java/core/repositories/timemanager/TaskgroupRepository.java index 6441145..4c17014 100644 --- a/backend/src/main/java/core/repositories/timemanager/TaskgroupRepository.java +++ b/backend/src/main/java/core/repositories/timemanager/TaskgroupRepository.java @@ -2,10 +2,12 @@ package core.repositories.timemanager; import core.entities.User; import core.entities.timemanager.Taskgroup; +import org.springframework.data.jpa.repository.Modifying; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.CrudRepository; import org.springframework.stereotype.Repository; +import javax.transaction.Transactional; import java.util.List; @Repository @@ -15,4 +17,8 @@ public interface TaskgroupRepository extends CrudRepository { @Query("SELECT tg FROM Taskgroup tg WHERE tg.user.username = ?1") List findAllByUser(String username); + + @Modifying + @Transactional + void deleteAllByUser(User user); } diff --git a/backend/src/main/java/core/services/TaskgroupService.java b/backend/src/main/java/core/services/TaskgroupService.java index 07cd12e..d5031c8 100644 --- a/backend/src/main/java/core/services/TaskgroupService.java +++ b/backend/src/main/java/core/services/TaskgroupService.java @@ -71,4 +71,8 @@ public class TaskgroupService { public List getTaskgroupsByUser(String username) { return taskgroupRepository.findAllByUser(username); } + + public void deleteTaskgroupByUser(User user) { + taskgroupRepository.deleteAllByUser(user); + } } diff --git a/backend/src/main/java/core/services/UserService.java b/backend/src/main/java/core/services/UserService.java index 2ed47f9..e149fbe 100644 --- a/backend/src/main/java/core/services/UserService.java +++ b/backend/src/main/java/core/services/UserService.java @@ -9,6 +9,7 @@ import core.api.models.users.UserUpdateInfo; import core.entities.RoleEntity; import core.entities.User; import core.entities.UserRole; +import core.entities.timemanager.Taskgroup; import core.repositories.RoleRepository; import core.repositories.UserRepository; import org.springframework.beans.factory.annotation.Autowired; @@ -29,6 +30,7 @@ public class UserService { @Autowired private RoleRepository roleRepository; + @Autowired private TaskgroupService taskgroupService; public List getAllUserInfos() { Iterable users = userRepository.findAll(); @@ -146,6 +148,7 @@ public class UserService { return 2; } + taskgroupService.deleteTaskgroupByUser(requestedUser.get()); userRepository.deleteByUsername(username); return 0; }