mirror of
https://github.com/nagisa77/OpenIsle.git
synced 2026-03-16 00:50:47 +08:00
Revert "Disable post viewed and user activity notifications by default"
This reverts commit aea4f59af7.
This commit is contained in:
@@ -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<User> users = userRepository.findAll();
|
|
||||||
for (User user : users) {
|
|
||||||
Set<NotificationType> 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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -7,7 +7,7 @@ import lombok.Setter;
|
|||||||
import org.hibernate.annotations.CreationTimestamp;
|
import org.hibernate.annotations.CreationTimestamp;
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.EnumSet;
|
import java.util.HashSet;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -68,10 +68,7 @@ public class User {
|
|||||||
@CollectionTable(name = "user_disabled_notification_types", joinColumns = @JoinColumn(name = "user_id"))
|
@CollectionTable(name = "user_disabled_notification_types", joinColumns = @JoinColumn(name = "user_id"))
|
||||||
@Column(name = "notification_type")
|
@Column(name = "notification_type")
|
||||||
@Enumerated(EnumType.STRING)
|
@Enumerated(EnumType.STRING)
|
||||||
private Set<NotificationType> disabledNotificationTypes = EnumSet.of(
|
private Set<NotificationType> disabledNotificationTypes = new HashSet<>();
|
||||||
NotificationType.POST_VIEWED,
|
|
||||||
NotificationType.USER_ACTIVITY
|
|
||||||
);
|
|
||||||
|
|
||||||
@CreationTimestamp
|
@CreationTimestamp
|
||||||
@Column(nullable = false, updatable = false,
|
@Column(nullable = false, updatable = false,
|
||||||
|
|||||||
@@ -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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user