From 07acbb4ddd713f74406b156cbcac2507f96f3b08 Mon Sep 17 00:00:00 2001 From: Arpit Singh Date: Fri, 9 Aug 2024 12:23:49 +0530 Subject: Implementation of Data validation feature in Create a Node API Added support to validate JSON/XML data without the need of persisting it in the databse. - added "dryRunInQuery" flag as a new query parameter - added new method as part of CpsDataService layer to perform data validation - added new method in yang parser "validateData" to validate data without persisting it Issue-ID: CPS-2361 Change-Id: I43dd33cc6120576d0fac606d5c4b0168d107311d Signed-off-by: Arpit Singh --- .../onap/cps/rest/controller/DataRestController.java | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) (limited to 'cps-rest/src/main/java/org/onap') diff --git a/cps-rest/src/main/java/org/onap/cps/rest/controller/DataRestController.java b/cps-rest/src/main/java/org/onap/cps/rest/controller/DataRestController.java index f86073fb06..7390afcf98 100755 --- a/cps-rest/src/main/java/org/onap/cps/rest/controller/DataRestController.java +++ b/cps-rest/src/main/java/org/onap/cps/rest/controller/DataRestController.java @@ -74,16 +74,21 @@ public class DataRestController implements CpsDataApi { final String dataspaceName, final String anchorName, final String contentTypeInHeader, final String nodeData, final String parentNodeXpath, - final String observedTimestamp) { + final Boolean dryRunEnabled, final String observedTimestamp) { final ContentType contentType = getContentTypeFromHeader(contentTypeInHeader); - if (isRootXpath(parentNodeXpath)) { - cpsDataService.saveData(dataspaceName, anchorName, nodeData, - toOffsetDateTime(observedTimestamp), contentType); + if (Boolean.TRUE.equals(dryRunEnabled)) { + cpsDataService.validateData(dataspaceName, anchorName, parentNodeXpath, nodeData, contentType); + return ResponseEntity.ok().build(); } else { - cpsDataService.saveData(dataspaceName, anchorName, parentNodeXpath, - nodeData, toOffsetDateTime(observedTimestamp), contentType); + if (isRootXpath(parentNodeXpath)) { + cpsDataService.saveData(dataspaceName, anchorName, nodeData, + toOffsetDateTime(observedTimestamp), contentType); + } else { + cpsDataService.saveData(dataspaceName, anchorName, parentNodeXpath, + nodeData, toOffsetDateTime(observedTimestamp), contentType); + } + return ResponseEntity.status(HttpStatus.CREATED).build(); } - return new ResponseEntity<>(HttpStatus.CREATED); } @Override -- cgit 1.2.3-korg