|
|
|
@ -118,20 +118,16 @@ public class BaseRuleChainService extends AbstractEntityService implements RuleC |
|
|
|
@Transactional |
|
|
|
public RuleChain saveRuleChain(RuleChain ruleChain, boolean publishSaveEvent) { |
|
|
|
ruleChainValidator.validate(ruleChain, RuleChain::getTenantId); |
|
|
|
RuleChain savedRuleChain = saveRuleChainInternal(ruleChain); |
|
|
|
if (ruleChain.getId() == null) { |
|
|
|
entityCountService.publishCountEntityEvictEvent(ruleChain.getTenantId(), EntityType.RULE_CHAIN); |
|
|
|
} |
|
|
|
if (publishSaveEvent) { |
|
|
|
eventPublisher.publishEvent(SaveEntityEvent.builder().tenantId(savedRuleChain.getTenantId()) |
|
|
|
.entity(savedRuleChain).entityId(savedRuleChain.getId()).created(ruleChain.getId() == null).build()); |
|
|
|
} |
|
|
|
return savedRuleChain; |
|
|
|
} |
|
|
|
|
|
|
|
private RuleChain saveRuleChainInternal(RuleChain ruleChain) { |
|
|
|
try { |
|
|
|
return ruleChainDao.saveAndFlush(ruleChain.getTenantId(), ruleChain); |
|
|
|
RuleChain savedRuleChain = ruleChainDao.saveAndFlush(ruleChain.getTenantId(), ruleChain); |
|
|
|
if (ruleChain.getId() == null) { |
|
|
|
entityCountService.publishCountEntityEvictEvent(ruleChain.getTenantId(), EntityType.RULE_CHAIN); |
|
|
|
} |
|
|
|
if (publishSaveEvent) { |
|
|
|
eventPublisher.publishEvent(SaveEntityEvent.builder().tenantId(savedRuleChain.getTenantId()) |
|
|
|
.entity(savedRuleChain).entityId(savedRuleChain.getId()).created(ruleChain.getId() == null).build()); |
|
|
|
} |
|
|
|
return savedRuleChain; |
|
|
|
} catch (Exception e) { |
|
|
|
checkConstraintViolation(e, "rule_chain_external_id_unq_key", "Rule Chain with such external id already exists!"); |
|
|
|
throw e; |
|
|
|
|