diff --git a/redaction-service-v1/redaction-service-api-v1/src/main/java/com/iqser/red/service/redaction/v1/resources/RedactionResource.java b/redaction-service-v1/redaction-service-api-v1/src/main/java/com/iqser/red/service/redaction/v1/resources/RedactionResource.java index 2ce17e56..9bcf78d8 100644 --- a/redaction-service-v1/redaction-service-api-v1/src/main/java/com/iqser/red/service/redaction/v1/resources/RedactionResource.java +++ b/redaction-service-v1/redaction-service-api-v1/src/main/java/com/iqser/red/service/redaction/v1/resources/RedactionResource.java @@ -1,16 +1,19 @@ package com.iqser.red.service.redaction.v1.resources; -import org.springframework.http.MediaType; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; - import com.iqser.red.service.redaction.v1.model.RedactionRequest; import com.iqser.red.service.redaction.v1.model.RedactionResult; +import org.springframework.http.MediaType; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; public interface RedactionResource { String SERVICE_NAME = "redaction-service-v1"; + String RULE_SET_PARAMETER_NAME = "ruleSetId"; + String RULE_SET_PATH_VARIABLE = "/{" + RULE_SET_PARAMETER_NAME + "}"; + @PostMapping(value = "/redact", produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE) RedactionResult redact(@RequestBody RedactionRequest redactionRequest); @@ -23,7 +26,10 @@ public interface RedactionResource { @PostMapping(value = "/debug/htmlTables", produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE) RedactionResult htmlTables(@RequestBody RedactionRequest redactionRequest); - @PostMapping(value = "/rules/update", consumes = MediaType.APPLICATION_JSON_VALUE) - void updateRules(@RequestBody String rules); + @PostMapping(value = "/rules/update"+RULE_SET_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE) + void updateRules(@PathVariable(RULE_SET_PARAMETER_NAME) String ruleSetId); + + @PostMapping(value = "/rules/test", consumes = MediaType.APPLICATION_JSON_VALUE) + void testRules(@RequestBody String rules); } \ No newline at end of file diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/controller/RedactionController.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/controller/RedactionController.java index 63bbcb0a..66ac57dd 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/controller/RedactionController.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/controller/RedactionController.java @@ -19,6 +19,7 @@ import com.iqser.red.service.redaction.v1.server.visualization.service.PdfVisual import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.pdfbox.pdmodel.PDDocument; +import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; @@ -134,9 +135,13 @@ public class RedactionController implements RedactionResource { @Override - public void updateRules(@RequestBody String rules) { + public void updateRules(@PathVariable(RULE_SET_PARAMETER_NAME) String ruleSetId) { + droolsExecutionService.updateRules(ruleSetId); + } - droolsExecutionService.updateRules(rules); + @Override + public void testRules(@RequestBody String rules) { + droolsExecutionService.testRules(rules); } diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/service/DroolsExecutionService.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/service/DroolsExecutionService.java index 7ff62cde..7ef0dade 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/service/DroolsExecutionService.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/service/DroolsExecutionService.java @@ -103,4 +103,11 @@ public class DroolsExecutionService { } + public void testRules(String rules) { + KieServices kieServices = KieServices.Factory.get(); + KieModule kieModule = getKieModule("test-rules", rules, kieServices); + var container = kieServices.newKieContainer(kieModule.getReleaseId()); + container.newKieSession(); + container.dispose(); + } } \ No newline at end of file