From c39fb8c94dc7db92aa59a865ae09eca01471410c Mon Sep 17 00:00:00 2001 From: Viacheslav Klimov Date: Wed, 12 May 2021 13:06:37 +0300 Subject: [PATCH] Refactor --- .../telemetry/DefaultAlarmSubscriptionService.java | 8 +------- .../thingsboard/server/dao/alarm/AlarmService.java | 4 +--- .../server/dao/alarm/BaseAlarmService.java | 13 +++++-------- 3 files changed, 7 insertions(+), 18 deletions(-) diff --git a/application/src/main/java/org/thingsboard/server/service/telemetry/DefaultAlarmSubscriptionService.java b/application/src/main/java/org/thingsboard/server/service/telemetry/DefaultAlarmSubscriptionService.java index abe6807821..d85ac8d736 100644 --- a/application/src/main/java/org/thingsboard/server/service/telemetry/DefaultAlarmSubscriptionService.java +++ b/application/src/main/java/org/thingsboard/server/service/telemetry/DefaultAlarmSubscriptionService.java @@ -87,13 +87,7 @@ public class DefaultAlarmSubscriptionService extends AbstractSubscriptionService @Override public Alarm createOrUpdateAlarm(Alarm alarm) { - AlarmOperationResult result = alarmService.createOrUpdateAlarm(alarm, - () -> { - if (!apiUsageStateService.getApiUsageState(alarm.getTenantId()).isAlarmCreationEnabled()) { - throw new IllegalStateException("Alarms creation is disabled due to API limits"); - } - }, - () -> {}); + AlarmOperationResult result = alarmService.createOrUpdateAlarm(alarm, apiUsageStateService.getApiUsageState(alarm.getTenantId()).isAlarmCreationEnabled()); if (result.isSuccessful()) { onAlarmUpdated(result); } diff --git a/common/dao-api/src/main/java/org/thingsboard/server/dao/alarm/AlarmService.java b/common/dao-api/src/main/java/org/thingsboard/server/dao/alarm/AlarmService.java index b9067cdd43..c0cddd9337 100644 --- a/common/dao-api/src/main/java/org/thingsboard/server/dao/alarm/AlarmService.java +++ b/common/dao-api/src/main/java/org/thingsboard/server/dao/alarm/AlarmService.java @@ -29,9 +29,7 @@ import org.thingsboard.server.common.data.id.EntityId; import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.common.data.page.PageData; import org.thingsboard.server.common.data.query.AlarmData; -import org.thingsboard.server.common.data.query.AlarmDataPageLink; import org.thingsboard.server.common.data.query.AlarmDataQuery; -import org.thingsboard.server.common.msg.queue.TbCallback; import java.util.Collection; @@ -42,7 +40,7 @@ public interface AlarmService { AlarmOperationResult createOrUpdateAlarm(Alarm alarm); - AlarmOperationResult createOrUpdateAlarm(Alarm alarm, Runnable onAlarmCreation, Runnable onAlarmUpdate); + AlarmOperationResult createOrUpdateAlarm(Alarm alarm, boolean alarmCreationEnabled); AlarmOperationResult deleteAlarm(TenantId tenantId, AlarmId alarmId); diff --git a/dao/src/main/java/org/thingsboard/server/dao/alarm/BaseAlarmService.java b/dao/src/main/java/org/thingsboard/server/dao/alarm/BaseAlarmService.java index a4290636f5..bb54efe769 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/alarm/BaseAlarmService.java +++ b/dao/src/main/java/org/thingsboard/server/dao/alarm/BaseAlarmService.java @@ -41,13 +41,11 @@ import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.common.data.page.PageData; import org.thingsboard.server.common.data.query.AlarmData; import org.thingsboard.server.common.data.query.AlarmDataQuery; -import org.thingsboard.server.common.data.query.DeviceTypeFilter; import org.thingsboard.server.common.data.relation.EntityRelation; import org.thingsboard.server.common.data.relation.EntityRelationsQuery; import org.thingsboard.server.common.data.relation.EntitySearchDirection; import org.thingsboard.server.common.data.relation.RelationTypeGroup; import org.thingsboard.server.common.data.relation.RelationsSearchParameters; -import org.thingsboard.server.common.msg.queue.TbCallback; import org.thingsboard.server.dao.entity.AbstractEntityService; import org.thingsboard.server.dao.entity.EntityService; import org.thingsboard.server.dao.exception.DataValidationException; @@ -66,7 +64,6 @@ import java.util.Set; import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; -import java.util.function.Consumer; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -104,11 +101,11 @@ public class BaseAlarmService extends AbstractEntityService implements AlarmServ @Override public AlarmOperationResult createOrUpdateAlarm(Alarm alarm) { - return createOrUpdateAlarm(alarm, () -> {}, () -> {}); + return createOrUpdateAlarm(alarm, true); } @Override - public AlarmOperationResult createOrUpdateAlarm(Alarm alarm, Runnable onAlarmCreation, Runnable onAlarmUpdate) { + public AlarmOperationResult createOrUpdateAlarm(Alarm alarm, boolean alarmCreationEnabled) { alarmDataValidator.validate(alarm, Alarm::getTenantId); try { if (alarm.getStartTs() == 0L) { @@ -121,14 +118,14 @@ public class BaseAlarmService extends AbstractEntityService implements AlarmServ if (alarm.getId() == null) { Alarm existing = alarmDao.findLatestByOriginatorAndType(alarm.getTenantId(), alarm.getOriginator(), alarm.getType()).get(); if (existing == null || existing.getStatus().isCleared()) { - onAlarmCreation.run(); + if (!alarmCreationEnabled) { + throw new IllegalStateException("Alarm creation is disabled"); + } return createAlarm(alarm); } else { - onAlarmUpdate.run(); return updateAlarm(existing, alarm); } } else { - onAlarmUpdate.run(); return updateAlarm(alarm).get(); } } catch (ExecutionException | InterruptedException e) {