From 5d499956d7a74685282ccc8a5c1ee0f1756d7327 Mon Sep 17 00:00:00 2001 From: Tim <135014430+nagisa77@users.noreply.github.com> Date: Wed, 17 Sep 2025 13:30:58 +0800 Subject: [PATCH] Delete post change logs before removing posts --- .../java/com/openisle/repository/PostChangeLogRepository.java | 2 ++ .../main/java/com/openisle/service/PostChangeLogService.java | 4 ++++ backend/src/main/java/com/openisle/service/PostService.java | 1 + .../src/test/java/com/openisle/service/PostServiceTest.java | 1 + 4 files changed, 8 insertions(+) diff --git a/backend/src/main/java/com/openisle/repository/PostChangeLogRepository.java b/backend/src/main/java/com/openisle/repository/PostChangeLogRepository.java index c9e700fc0..324ac8506 100644 --- a/backend/src/main/java/com/openisle/repository/PostChangeLogRepository.java +++ b/backend/src/main/java/com/openisle/repository/PostChangeLogRepository.java @@ -8,4 +8,6 @@ import java.util.List; public interface PostChangeLogRepository extends JpaRepository { List findByPostOrderByCreatedAtAsc(Post post); + + void deleteByPost(Post post); } diff --git a/backend/src/main/java/com/openisle/service/PostChangeLogService.java b/backend/src/main/java/com/openisle/service/PostChangeLogService.java index aeb6c2bc5..ec15508d1 100644 --- a/backend/src/main/java/com/openisle/service/PostChangeLogService.java +++ b/backend/src/main/java/com/openisle/service/PostChangeLogService.java @@ -109,6 +109,10 @@ public class PostChangeLogService { logRepository.save(log); } + public void deleteLogsForPost(Post post) { + logRepository.deleteByPost(post); + } + public List listLogs(Long postId) { Post post = postRepository.findById(postId) .orElseThrow(() -> new com.openisle.exception.NotFoundException("Post not found")); diff --git a/backend/src/main/java/com/openisle/service/PostService.java b/backend/src/main/java/com/openisle/service/PostService.java index daddffe5e..a948bf801 100644 --- a/backend/src/main/java/com/openisle/service/PostService.java +++ b/backend/src/main/java/com/openisle/service/PostService.java @@ -888,6 +888,7 @@ public class PostService { } } String title = post.getTitle(); + postChangeLogService.deleteLogsForPost(post); postRepository.delete(post); if (adminDeleting) { notificationService.createNotification(author, NotificationType.POST_DELETED, diff --git a/backend/src/test/java/com/openisle/service/PostServiceTest.java b/backend/src/test/java/com/openisle/service/PostServiceTest.java index 46efaa5c0..b6997d59e 100644 --- a/backend/src/test/java/com/openisle/service/PostServiceTest.java +++ b/backend/src/test/java/com/openisle/service/PostServiceTest.java @@ -71,6 +71,7 @@ class PostServiceTest { verify(postReadService).deleteByPost(post); verify(postRepo).delete(post); + verify(postChangeLogService).deleteLogsForPost(post); } @Test