Commit c39fb8c94dc7db92aa59a865ae09eca01471410c

Authored by Viacheslav Klimov
Committed by Andrew Shvayka
1 parent 1c1e3f9b

Refactor

@@ -87,13 +87,7 @@ public class DefaultAlarmSubscriptionService extends AbstractSubscriptionService @@ -87,13 +87,7 @@ public class DefaultAlarmSubscriptionService extends AbstractSubscriptionService
87 87
88 @Override 88 @Override
89 public Alarm createOrUpdateAlarm(Alarm alarm) { 89 public Alarm createOrUpdateAlarm(Alarm alarm) {
90 - AlarmOperationResult result = alarmService.createOrUpdateAlarm(alarm,  
91 - () -> {  
92 - if (!apiUsageStateService.getApiUsageState(alarm.getTenantId()).isAlarmCreationEnabled()) {  
93 - throw new IllegalStateException("Alarms creation is disabled due to API limits");  
94 - }  
95 - },  
96 - () -> {}); 90 + AlarmOperationResult result = alarmService.createOrUpdateAlarm(alarm, apiUsageStateService.getApiUsageState(alarm.getTenantId()).isAlarmCreationEnabled());
97 if (result.isSuccessful()) { 91 if (result.isSuccessful()) {
98 onAlarmUpdated(result); 92 onAlarmUpdated(result);
99 } 93 }
@@ -29,9 +29,7 @@ import org.thingsboard.server.common.data.id.EntityId; @@ -29,9 +29,7 @@ import org.thingsboard.server.common.data.id.EntityId;
29 import org.thingsboard.server.common.data.id.TenantId; 29 import org.thingsboard.server.common.data.id.TenantId;
30 import org.thingsboard.server.common.data.page.PageData; 30 import org.thingsboard.server.common.data.page.PageData;
31 import org.thingsboard.server.common.data.query.AlarmData; 31 import org.thingsboard.server.common.data.query.AlarmData;
32 -import org.thingsboard.server.common.data.query.AlarmDataPageLink;  
33 import org.thingsboard.server.common.data.query.AlarmDataQuery; 32 import org.thingsboard.server.common.data.query.AlarmDataQuery;
34 -import org.thingsboard.server.common.msg.queue.TbCallback;  
35 33
36 import java.util.Collection; 34 import java.util.Collection;
37 35
@@ -42,7 +40,7 @@ public interface AlarmService { @@ -42,7 +40,7 @@ public interface AlarmService {
42 40
43 AlarmOperationResult createOrUpdateAlarm(Alarm alarm); 41 AlarmOperationResult createOrUpdateAlarm(Alarm alarm);
44 42
45 - AlarmOperationResult createOrUpdateAlarm(Alarm alarm, Runnable onAlarmCreation, Runnable onAlarmUpdate); 43 + AlarmOperationResult createOrUpdateAlarm(Alarm alarm, boolean alarmCreationEnabled);
46 44
47 AlarmOperationResult deleteAlarm(TenantId tenantId, AlarmId alarmId); 45 AlarmOperationResult deleteAlarm(TenantId tenantId, AlarmId alarmId);
48 46
@@ -41,13 +41,11 @@ import org.thingsboard.server.common.data.id.TenantId; @@ -41,13 +41,11 @@ import org.thingsboard.server.common.data.id.TenantId;
41 import org.thingsboard.server.common.data.page.PageData; 41 import org.thingsboard.server.common.data.page.PageData;
42 import org.thingsboard.server.common.data.query.AlarmData; 42 import org.thingsboard.server.common.data.query.AlarmData;
43 import org.thingsboard.server.common.data.query.AlarmDataQuery; 43 import org.thingsboard.server.common.data.query.AlarmDataQuery;
44 -import org.thingsboard.server.common.data.query.DeviceTypeFilter;  
45 import org.thingsboard.server.common.data.relation.EntityRelation; 44 import org.thingsboard.server.common.data.relation.EntityRelation;
46 import org.thingsboard.server.common.data.relation.EntityRelationsQuery; 45 import org.thingsboard.server.common.data.relation.EntityRelationsQuery;
47 import org.thingsboard.server.common.data.relation.EntitySearchDirection; 46 import org.thingsboard.server.common.data.relation.EntitySearchDirection;
48 import org.thingsboard.server.common.data.relation.RelationTypeGroup; 47 import org.thingsboard.server.common.data.relation.RelationTypeGroup;
49 import org.thingsboard.server.common.data.relation.RelationsSearchParameters; 48 import org.thingsboard.server.common.data.relation.RelationsSearchParameters;
50 -import org.thingsboard.server.common.msg.queue.TbCallback;  
51 import org.thingsboard.server.dao.entity.AbstractEntityService; 49 import org.thingsboard.server.dao.entity.AbstractEntityService;
52 import org.thingsboard.server.dao.entity.EntityService; 50 import org.thingsboard.server.dao.entity.EntityService;
53 import org.thingsboard.server.dao.exception.DataValidationException; 51 import org.thingsboard.server.dao.exception.DataValidationException;
@@ -66,7 +64,6 @@ import java.util.Set; @@ -66,7 +64,6 @@ import java.util.Set;
66 import java.util.concurrent.ExecutionException; 64 import java.util.concurrent.ExecutionException;
67 import java.util.concurrent.ExecutorService; 65 import java.util.concurrent.ExecutorService;
68 import java.util.concurrent.Executors; 66 import java.util.concurrent.Executors;
69 -import java.util.function.Consumer;  
70 import java.util.stream.Collectors; 67 import java.util.stream.Collectors;
71 import java.util.stream.Stream; 68 import java.util.stream.Stream;
72 69
@@ -104,11 +101,11 @@ public class BaseAlarmService extends AbstractEntityService implements AlarmServ @@ -104,11 +101,11 @@ public class BaseAlarmService extends AbstractEntityService implements AlarmServ
104 101
105 @Override 102 @Override
106 public AlarmOperationResult createOrUpdateAlarm(Alarm alarm) { 103 public AlarmOperationResult createOrUpdateAlarm(Alarm alarm) {
107 - return createOrUpdateAlarm(alarm, () -> {}, () -> {}); 104 + return createOrUpdateAlarm(alarm, true);
108 } 105 }
109 106
110 @Override 107 @Override
111 - public AlarmOperationResult createOrUpdateAlarm(Alarm alarm, Runnable onAlarmCreation, Runnable onAlarmUpdate) { 108 + public AlarmOperationResult createOrUpdateAlarm(Alarm alarm, boolean alarmCreationEnabled) {
112 alarmDataValidator.validate(alarm, Alarm::getTenantId); 109 alarmDataValidator.validate(alarm, Alarm::getTenantId);
113 try { 110 try {
114 if (alarm.getStartTs() == 0L) { 111 if (alarm.getStartTs() == 0L) {
@@ -121,14 +118,14 @@ public class BaseAlarmService extends AbstractEntityService implements AlarmServ @@ -121,14 +118,14 @@ public class BaseAlarmService extends AbstractEntityService implements AlarmServ
121 if (alarm.getId() == null) { 118 if (alarm.getId() == null) {
122 Alarm existing = alarmDao.findLatestByOriginatorAndType(alarm.getTenantId(), alarm.getOriginator(), alarm.getType()).get(); 119 Alarm existing = alarmDao.findLatestByOriginatorAndType(alarm.getTenantId(), alarm.getOriginator(), alarm.getType()).get();
123 if (existing == null || existing.getStatus().isCleared()) { 120 if (existing == null || existing.getStatus().isCleared()) {
124 - onAlarmCreation.run(); 121 + if (!alarmCreationEnabled) {
  122 + throw new IllegalStateException("Alarm creation is disabled");
  123 + }
125 return createAlarm(alarm); 124 return createAlarm(alarm);
126 } else { 125 } else {
127 - onAlarmUpdate.run();  
128 return updateAlarm(existing, alarm); 126 return updateAlarm(existing, alarm);
129 } 127 }
130 } else { 128 } else {
131 - onAlarmUpdate.run();  
132 return updateAlarm(alarm).get(); 129 return updateAlarm(alarm).get();
133 } 130 }
134 } catch (ExecutionException | InterruptedException e) { 131 } catch (ExecutionException | InterruptedException e) {