From bda4b24cf0d315b0b3a35e6ce0e9b28dced07f27 Mon Sep 17 00:00:00 2001 From: Tim Date: Tue, 12 Aug 2025 17:31:01 +0800 Subject: [PATCH] Revert "Disable post viewed and user activity notifications by default" This reverts commit aea4f59af7a2fee583d205c293d3bb49ef0d21fb. --- .../NotificationPreferenceInitializer.java | 39 ------------------ .../main/java/com/openisle/model/User.java | 7 +--- ...NotificationPreferenceInitializerTest.java | 41 ------------------- 3 files changed, 2 insertions(+), 85 deletions(-) delete mode 100644 backend/src/main/java/com/openisle/config/NotificationPreferenceInitializer.java delete mode 100644 backend/src/test/java/com/openisle/config/NotificationPreferenceInitializerTest.java diff --git a/backend/src/main/java/com/openisle/config/NotificationPreferenceInitializer.java b/backend/src/main/java/com/openisle/config/NotificationPreferenceInitializer.java deleted file mode 100644 index 55a60ca68..000000000 --- a/backend/src/main/java/com/openisle/config/NotificationPreferenceInitializer.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.openisle.config; - -import com.openisle.model.NotificationType; -import com.openisle.model.User; -import com.openisle.repository.UserRepository; -import lombok.RequiredArgsConstructor; -import org.springframework.boot.CommandLineRunner; -import org.springframework.stereotype.Component; - -import java.util.List; -import java.util.Set; - -/** - * Ensure default notification preferences are applied to existing users. - */ -@Component -@RequiredArgsConstructor -public class NotificationPreferenceInitializer implements CommandLineRunner { - - private final UserRepository userRepository; - - @Override - public void run(String... args) { - List users = userRepository.findAll(); - for (User user : users) { - Set disabled = user.getDisabledNotificationTypes(); - boolean changed = false; - if (disabled.add(NotificationType.POST_VIEWED)) { - changed = true; - } - if (disabled.add(NotificationType.USER_ACTIVITY)) { - changed = true; - } - if (changed) { - userRepository.save(user); - } - } - } -} diff --git a/backend/src/main/java/com/openisle/model/User.java b/backend/src/main/java/com/openisle/model/User.java index 3f9dc0bca..fef975633 100644 --- a/backend/src/main/java/com/openisle/model/User.java +++ b/backend/src/main/java/com/openisle/model/User.java @@ -7,7 +7,7 @@ import lombok.Setter; import org.hibernate.annotations.CreationTimestamp; import java.time.LocalDateTime; -import java.util.EnumSet; +import java.util.HashSet; import java.util.Set; /** @@ -68,10 +68,7 @@ public class User { @CollectionTable(name = "user_disabled_notification_types", joinColumns = @JoinColumn(name = "user_id")) @Column(name = "notification_type") @Enumerated(EnumType.STRING) - private Set disabledNotificationTypes = EnumSet.of( - NotificationType.POST_VIEWED, - NotificationType.USER_ACTIVITY - ); + private Set disabledNotificationTypes = new HashSet<>(); @CreationTimestamp @Column(nullable = false, updatable = false, diff --git a/backend/src/test/java/com/openisle/config/NotificationPreferenceInitializerTest.java b/backend/src/test/java/com/openisle/config/NotificationPreferenceInitializerTest.java deleted file mode 100644 index a4fe1c41c..000000000 --- a/backend/src/test/java/com/openisle/config/NotificationPreferenceInitializerTest.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.openisle.config; - -import com.openisle.model.NotificationType; -import com.openisle.model.User; -import com.openisle.repository.UserRepository; -import org.junit.jupiter.api.Test; - -import java.util.EnumSet; -import java.util.List; - -import static org.junit.jupiter.api.Assertions.assertTrue; -import static org.mockito.Mockito.*; - -class NotificationPreferenceInitializerTest { - - @Test - void addsDefaultsToUsers() throws Exception { - User u1 = new User(); - u1.setId(1L); - u1.getDisabledNotificationTypes().clear(); - - User u2 = new User(); - u2.setId(2L); - u2.getDisabledNotificationTypes().clear(); - u2.getDisabledNotificationTypes().add(NotificationType.POST_VIEWED); - - UserRepository repo = mock(UserRepository.class); - when(repo.findAll()).thenReturn(List.of(u1, u2)); - - NotificationPreferenceInitializer init = new NotificationPreferenceInitializer(repo); - init.run(); - - assertTrue(u1.getDisabledNotificationTypes().containsAll( - EnumSet.of(NotificationType.POST_VIEWED, NotificationType.USER_ACTIVITY))); - assertTrue(u2.getDisabledNotificationTypes().containsAll( - EnumSet.of(NotificationType.POST_VIEWED, NotificationType.USER_ACTIVITY))); - - verify(repo).save(u1); - verify(repo).save(u2); - } -}