diff --git a/src/main/java/com/openisle/service/ReactionService.java b/src/main/java/com/openisle/service/ReactionService.java index 2b90670af..cae386351 100644 --- a/src/main/java/com/openisle/service/ReactionService.java +++ b/src/main/java/com/openisle/service/ReactionService.java @@ -28,6 +28,11 @@ public class ReactionService { .orElseThrow(() -> new IllegalArgumentException("User not found")); Post post = postRepository.findById(postId) .orElseThrow(() -> new IllegalArgumentException("Post not found")); + java.util.Optional existing = + reactionRepository.findByUserAndPostAndType(user, post, type); + if (existing.isPresent()) { + return null; + } Reaction reaction = new Reaction(); reaction.setUser(user); reaction.setPost(post); @@ -44,6 +49,11 @@ public class ReactionService { .orElseThrow(() -> new IllegalArgumentException("User not found")); Comment comment = commentRepository.findById(commentId) .orElseThrow(() -> new IllegalArgumentException("Comment not found")); + java.util.Optional existing = + reactionRepository.findByUserAndCommentAndType(user, comment, type); + if (existing.isPresent()) { + return null; + } Reaction reaction = new Reaction(); reaction.setUser(user); reaction.setComment(comment);