@@ -195,6 +195,10 @@ public class RuleDefinitionDto { | |||
return templateId; | |||
} | |||
public boolean isCustomRule() { | |||
return getTemplateId() != null; | |||
} | |||
public RuleDefinitionDto setTemplateId(@Nullable Integer templateId) { | |||
this.templateId = templateId; | |||
return this; |
@@ -114,7 +114,7 @@ class RuleActivatorContext { | |||
@CheckForNull | |||
String requestParamValue(RuleActivation request, String key) { | |||
if (rule.getTemplateId() != null) { | |||
if (rule.isCustomRule()) { | |||
return null; | |||
} | |||
return request.getParameters().get(key); |
@@ -393,7 +393,7 @@ public class RegisterRules implements Startable { | |||
List<RuleDefinitionDto> removedRules = newArrayList(); | |||
for (RuleDefinitionDto rule : existingRules) { | |||
if (rule.getTemplateId() != null) { | |||
if (rule.isCustomRule()) { | |||
customRules.add(rule); | |||
} else if (rule.getStatus() != RuleStatus.REMOVED) { | |||
removeRule(session, removedRules, rule); |
@@ -52,12 +52,12 @@ public class RuleDeleter { | |||
organizationFlags.checkDisabled(dbSession); | |||
RuleDefinitionDto rule = dbClient.ruleDao().selectOrFailDefinitionByKey(dbSession, ruleKey); | |||
if (rule.getTemplateId() == null) { | |||
if (!rule.isCustomRule()) { | |||
throw new IllegalStateException("Only custom rules can be deleted"); | |||
} | |||
// For custom rule, first deactivate the rule on all profiles | |||
if (rule.getTemplateId() != null) { | |||
if (rule.isCustomRule()) { | |||
ruleActivator.deactivateOfAllOrganizations(dbSession, rule); | |||
} | |||
@@ -167,7 +167,7 @@ public class CreateAction implements RulesWsAction { | |||
RuleDefinitionDto rule = dbClient.ruleDao().selectDefinitionByKey(dbSession, ruleKey) | |||
.orElseThrow(() -> new IllegalStateException(String.format("Cannot load rule, that has just been created '%s'", ruleKey))); | |||
List<RuleDefinitionDto> templateRules = new ArrayList<>(); | |||
if (rule.getTemplateId() != null) { | |||
if (rule.isCustomRule()) { | |||
Optional<RuleDefinitionDto> templateRule = dbClient.ruleDao().selectDefinitionById(rule.getTemplateId(), dbSession); | |||
templateRule.ifPresent(templateRules::add); | |||
} |
@@ -302,7 +302,7 @@ public class RuleMapper { | |||
} | |||
private static void setTemplateKey(Rules.Rule.Builder ruleResponse, RuleDefinitionDto ruleDto, SearchResult result, Set<String> fieldsToReturn) { | |||
if (shouldReturnField(fieldsToReturn, FIELD_TEMPLATE_KEY) && ruleDto.getTemplateId() != null) { | |||
if (shouldReturnField(fieldsToReturn, FIELD_TEMPLATE_KEY) && ruleDto.isCustomRule()) { | |||
RuleDefinitionDto templateRule = result.getTemplateRulesByRuleId().get(ruleDto.getTemplateId()); | |||
if (templateRule != null) { | |||
ruleResponse.setTemplateKey(templateRule.getKey().toString()); |
@@ -272,7 +272,7 @@ public class UpdateAction implements RulesWsAction { | |||
RuleDto rule = dbClient.ruleDao().selectByKey(dbSession, organization, key) | |||
.orElseThrow(() -> new NotFoundException(format("Rule not found: %s", key))); | |||
List<RuleDefinitionDto> templateRules = new ArrayList<>(1); | |||
if (rule.getTemplateId() != null) { | |||
if (rule.getDefinition().isCustomRule()) { | |||
dbClient.ruleDao().selectDefinitionById(rule.getTemplateId(), dbSession) | |||
.ifPresent(templateRules::add); | |||
} |