Search in sources :

Example 1 with Rules

use of com.peterphi.rules.types.Rules in project stdlib by petergeneric.

the class RulesDaemon method execute.

@Override
protected void execute() throws Exception {
    if (!enabled)
        // We have been disabled
        return;
    Rules rules = rulesProvider.get();
    rulesEngine.run(rules, true);
}
Also used : Rules(com.peterphi.rules.types.Rules)

Example 2 with Rules

use of com.peterphi.rules.types.Rules in project stdlib by petergeneric.

the class RulesUIServiceImpl method getIndex.

@Override
public String getIndex() {
    final TemplateCall call = templater.template("rules");
    call.set("daemon", rulesDaemon);
    boolean inputsValid;
    Rules rules = null;
    try {
        rules = rulesProvider.get();
        Map<String, Object> varMap = rulesEngine.prepare(rules);
        call.set("varMap", varMap);
        inputsValid = true;
    } catch (Exception e) {
        inputsValid = false;
        call.set("inputsError", e.getMessage());
    }
    boolean expressionsValid;
    try {
        if (rules != null) {
            Map<String, String> validationResults = rulesEngine.validateSyntax(rules);
            if (validationResults.size() > 0) {
                expressionsValid = false;
                call.set("expressionsErrorMap", validationResults);
                call.set("expressionsError", "Parse erorrs");
            } else {
                expressionsValid = true;
            }
        } else {
            call.set("expressionsError", "Rules not loaded!");
            expressionsValid = false;
        }
    } catch (Exception e) {
        expressionsValid = false;
        call.set("expressionsError", e.getMessage());
    }
    call.set("inputsValid", inputsValid);
    call.set("expressionsValid", expressionsValid);
    return call.process();
}
Also used : Rules(com.peterphi.rules.types.Rules) TemplateCall(com.peterphi.std.guice.web.rest.templating.TemplateCall)

Aggregations

Rules (com.peterphi.rules.types.Rules)2 TemplateCall (com.peterphi.std.guice.web.rest.templating.TemplateCall)1