Edge Rule Chain CRUD: revert metadata validatino
This commit is contained in:
parent
e372587926
commit
b29b192efc
@ -24,6 +24,7 @@ import org.thingsboard.server.common.data.id.TenantId;
|
||||
import org.thingsboard.server.common.data.rule.RuleChain;
|
||||
import org.thingsboard.server.common.data.rule.RuleChainMetaData;
|
||||
import org.thingsboard.server.common.data.rule.RuleChainType;
|
||||
import org.thingsboard.server.common.data.rule.RuleNode;
|
||||
import org.thingsboard.server.dao.service.DataValidator;
|
||||
import org.thingsboard.server.gen.edge.v1.RuleChainMetadataUpdateMsg;
|
||||
import org.thingsboard.server.gen.edge.v1.RuleChainUpdateMsg;
|
||||
@ -70,7 +71,12 @@ public class BaseRuleChainProcessor extends BaseEdgeProcessor {
|
||||
throw new RuntimeException("[{" + tenantId + "}] ruleChainMetadataUpdateMsg {" + ruleChainMetadataUpdateMsg + "} cannot be converted to rule chain metadata");
|
||||
}
|
||||
if (!ruleChainMetadata.getNodes().isEmpty()) {
|
||||
edgeCtx.getRuleChainService().saveRuleChainMetaData(tenantId, ruleChainMetadata, Function.identity(), true, false);
|
||||
ruleChainMetadata.setVersion(null);
|
||||
for (RuleNode ruleNode : ruleChainMetadata.getNodes()) {
|
||||
ruleNode.setRuleChainId(null);
|
||||
ruleNode.setId(null);
|
||||
}
|
||||
edgeCtx.getRuleChainService().saveRuleChainMetaData(tenantId, ruleChainMetadata, Function.identity(), true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -54,8 +54,6 @@ public interface RuleChainService extends EntityDaoService {
|
||||
|
||||
RuleChainUpdateResult saveRuleChainMetaData(TenantId tenantId, RuleChainMetaData ruleChainMetaData, Function<RuleNode, RuleNode> ruleNodeUpdater, boolean publishSaveEvent);
|
||||
|
||||
RuleChainUpdateResult saveRuleChainMetaData(TenantId tenantId, RuleChainMetaData ruleChainMetaData, Function<RuleNode, RuleNode> ruleNodeUpdater, boolean publishSaveEvent, boolean doValidate);
|
||||
|
||||
RuleChainMetaData loadRuleChainMetaData(TenantId tenantId, RuleChainId ruleChainId);
|
||||
|
||||
RuleChain findRuleChainById(TenantId tenantId, RuleChainId ruleChainId);
|
||||
|
||||
@ -174,25 +174,18 @@ public class BaseRuleChainService extends AbstractEntityService implements RuleC
|
||||
@Override
|
||||
@Transactional
|
||||
public RuleChainUpdateResult saveRuleChainMetaData(TenantId tenantId, RuleChainMetaData ruleChainMetaData, Function<RuleNode, RuleNode> ruleNodeUpdater) {
|
||||
return saveRuleChainMetaData(tenantId, ruleChainMetaData, ruleNodeUpdater, true, true);
|
||||
return saveRuleChainMetaData(tenantId, ruleChainMetaData, ruleNodeUpdater, true);
|
||||
}
|
||||
|
||||
@Transactional
|
||||
@Override
|
||||
public RuleChainUpdateResult saveRuleChainMetaData(TenantId tenantId, RuleChainMetaData ruleChainMetaData, Function<RuleNode, RuleNode> ruleNodeUpdater,
|
||||
boolean publishSaveEvent) {
|
||||
return saveRuleChainMetaData(tenantId, ruleChainMetaData, ruleNodeUpdater, publishSaveEvent, true);
|
||||
}
|
||||
|
||||
@Transactional
|
||||
@Override
|
||||
public RuleChainUpdateResult saveRuleChainMetaData(TenantId tenantId, RuleChainMetaData ruleChainMetaData, Function<RuleNode, RuleNode> ruleNodeUpdater,
|
||||
boolean publishSaveEvent, boolean doValidate) {
|
||||
Validator.validateId(ruleChainMetaData.getRuleChainId(), "Incorrect rule chain id.");
|
||||
RuleChain ruleChain = findRuleChainById(tenantId, ruleChainMetaData.getRuleChainId());
|
||||
if (ruleChain == null) {
|
||||
return RuleChainUpdateResult.failed();
|
||||
} else if (doValidate && ruleChainMetaData.getVersion() != null && !ruleChainMetaData.getVersion().equals(ruleChain.getVersion())) {
|
||||
} else if (ruleChainMetaData.getVersion() != null && !ruleChainMetaData.getVersion().equals(ruleChain.getVersion())) {
|
||||
throw new EntityVersionMismatchException(EntityType.RULE_CHAIN, null);
|
||||
}
|
||||
RuleChainDataValidator.validateMetaDataFieldsAndConnections(ruleChainMetaData);
|
||||
@ -206,14 +199,9 @@ public class BaseRuleChainService extends AbstractEntityService implements RuleC
|
||||
if (nodes != null) {
|
||||
for (RuleNode node : nodes) {
|
||||
setSingletonMode(node);
|
||||
if (doValidate) {
|
||||
if (node.getId() != null) {
|
||||
ruleNodeIndexMap.put(node.getId(), nodes.indexOf(node));
|
||||
} else {
|
||||
toAddOrUpdate.add(node);
|
||||
}
|
||||
} else {
|
||||
if (node.getId() != null) {
|
||||
ruleNodeIndexMap.put(node.getId(), nodes.indexOf(node));
|
||||
} else {
|
||||
toAddOrUpdate.add(node);
|
||||
}
|
||||
}
|
||||
@ -226,10 +214,8 @@ public class BaseRuleChainService extends AbstractEntityService implements RuleC
|
||||
Integer index = ruleNodeIndexMap.get(existingNode.getId());
|
||||
RuleNode newRuleNode = null;
|
||||
if (index != null) {
|
||||
if (doValidate) {
|
||||
newRuleNode = ruleChainMetaData.getNodes().get(index);
|
||||
toAddOrUpdate.add(newRuleNode);
|
||||
}
|
||||
newRuleNode = ruleChainMetaData.getNodes().get(index);
|
||||
toAddOrUpdate.add(newRuleNode);
|
||||
} else {
|
||||
updatedRuleNodes.add(new RuleNodeUpdateResult(existingNode, null));
|
||||
toDelete.add(existingNode);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user