Browse Source

Delete notification settings on tenant deletion

pull/8522/head
ViacheslavKlimov 3 years ago
parent
commit
b1c0a04426
  1. 4
      application/src/test/java/org/thingsboard/server/service/notification/AbstractNotificationApiTest.java
  2. 2
      common/dao-api/src/main/java/org/thingsboard/server/dao/notification/NotificationSettingsService.java
  3. 6
      dao/src/main/java/org/thingsboard/server/dao/notification/DefaultNotificationSettingsService.java
  4. 1
      dao/src/main/java/org/thingsboard/server/dao/tenant/TenantServiceImpl.java

4
application/src/test/java/org/thingsboard/server/service/notification/AbstractNotificationApiTest.java

@ -62,6 +62,7 @@ import org.thingsboard.server.controller.AbstractControllerTest;
import org.thingsboard.server.dao.DaoUtil;
import org.thingsboard.server.dao.notification.NotificationRequestService;
import org.thingsboard.server.dao.notification.NotificationRuleService;
import org.thingsboard.server.dao.notification.NotificationSettingsService;
import org.thingsboard.server.dao.notification.NotificationTargetService;
import org.thingsboard.server.dao.notification.NotificationTemplateService;
import org.thingsboard.server.dao.sqlts.insert.sql.SqlPartitioningRepository;
@ -95,6 +96,8 @@ public abstract class AbstractNotificationApiTest extends AbstractControllerTest
@Autowired
protected NotificationRequestService notificationRequestService;
@Autowired
protected NotificationSettingsService notificationSettingsService;
@Autowired
protected SqlPartitioningRepository partitioningRepository;
public static final String DEFAULT_NOTIFICATION_SUBJECT = "Just a test";
@ -107,6 +110,7 @@ public abstract class AbstractNotificationApiTest extends AbstractControllerTest
notificationTemplateService.deleteNotificationTemplatesByTenantId(TenantId.SYS_TENANT_ID);
notificationTargetService.deleteNotificationTargetsByTenantId(TenantId.SYS_TENANT_ID);
partitioningRepository.dropPartitionsBefore("notification", Long.MAX_VALUE, 1);
notificationSettingsService.deleteNotificationSettings(TenantId.SYS_TENANT_ID);
}
protected NotificationTarget createNotificationTarget(UserId... usersIds) {

2
common/dao-api/src/main/java/org/thingsboard/server/dao/notification/NotificationSettingsService.java

@ -26,6 +26,8 @@ public interface NotificationSettingsService {
NotificationSettings findNotificationSettings(TenantId tenantId);
void deleteNotificationSettings(TenantId tenantId);
UserNotificationSettings saveUserNotificationSettings(TenantId tenantId, UserId userId, UserNotificationSettings settings);
UserNotificationSettings getUserNotificationSettings(TenantId tenantId, UserId userId, boolean format);

6
dao/src/main/java/org/thingsboard/server/dao/notification/DefaultNotificationSettingsService.java

@ -97,6 +97,12 @@ public class DefaultNotificationSettingsService implements NotificationSettingsS
});
}
@CacheEvict(cacheNames = CacheConstants.NOTIFICATION_SETTINGS_CACHE, key = "#tenantId")
@Override
public void deleteNotificationSettings(TenantId tenantId) {
adminSettingsService.deleteAdminSettingsByTenantIdAndKey(tenantId, SETTINGS_KEY);
}
@Override
public UserNotificationSettings saveUserNotificationSettings(TenantId tenantId, UserId userId, UserNotificationSettings settings) {
UserSettings userSettings = new UserSettings();

1
dao/src/main/java/org/thingsboard/server/dao/tenant/TenantServiceImpl.java

@ -241,6 +241,7 @@ public class TenantServiceImpl extends AbstractCachedEntityService<TenantId, Ten
notificationRuleService.deleteNotificationRulesByTenantId(tenantId);
notificationTemplateService.deleteNotificationTemplatesByTenantId(tenantId);
notificationTargetService.deleteNotificationTargetsByTenantId(tenantId);
notificationSettingsService.deleteNotificationSettings(tenantId);
adminSettingsService.deleteAdminSettingsByTenantId(tenantId);
tenantDao.removeById(tenantId, tenantId.getId());
publishEvictEvent(new TenantEvictEvent(tenantId, true));

Loading…
Cancel
Save