aboutsummaryrefslogtreecommitdiffstats
path: root/ONAP-PDP-REST/src/main/java/org/onap/policy/pdp/rest/api/services/CreateUpdateDictionaryService.java
diff options
context:
space:
mode:
Diffstat (limited to 'ONAP-PDP-REST/src/main/java/org/onap/policy/pdp/rest/api/services/CreateUpdateDictionaryService.java')
-rw-r--r--ONAP-PDP-REST/src/main/java/org/onap/policy/pdp/rest/api/services/CreateUpdateDictionaryService.java31
1 files changed, 22 insertions, 9 deletions
diff --git a/ONAP-PDP-REST/src/main/java/org/onap/policy/pdp/rest/api/services/CreateUpdateDictionaryService.java b/ONAP-PDP-REST/src/main/java/org/onap/policy/pdp/rest/api/services/CreateUpdateDictionaryService.java
index 9d2577426..5f6a4fc90 100644
--- a/ONAP-PDP-REST/src/main/java/org/onap/policy/pdp/rest/api/services/CreateUpdateDictionaryService.java
+++ b/ONAP-PDP-REST/src/main/java/org/onap/policy/pdp/rest/api/services/CreateUpdateDictionaryService.java
@@ -41,6 +41,7 @@ public class CreateUpdateDictionaryService {
private String message = null;
private Boolean updateFlag = false;
private DictionaryParameters dictionaryParameters = null;
+ private JsonObject json = null;
public CreateUpdateDictionaryService(
DictionaryParameters dictionaryParameters, String requestID,
@@ -62,6 +63,7 @@ public class CreateUpdateDictionaryService {
}
this.dictionaryParameters.setRequestID(requestUUID);
}
+
try{
run();
specialCheck();
@@ -105,20 +107,14 @@ public class CreateUpdateDictionaryService {
} else {
operation = "create";
}
- JsonObject json = null;
- try{
- json = PolicyApiUtils.stringToJsonObject(dictionaryParameters.getDictionaryJson());
- } catch(JsonException| IllegalStateException e){
- message = XACMLErrorConstants.ERROR_DATA_ISSUE+ " improper Dictionary JSON object : " + dictionaryParameters.getDictionaryJson();
- LOGGER.error(message, e);
- return message;
- }
+
String dictionaryFields = json.toString();
PAPServices papServices = new PAPServices();
return (String) papServices.callPAP(new ByteArrayInputStream(dictionaryFields.getBytes()), new String[] {"operation="+operation, "apiflag=api", "dictionaryType="+dictionaryParameters.getDictionary()}, dictionaryParameters.getRequestID(), "dictionaryItem");
}
private boolean getValidation() {
+ LOGGER.info("Start validating create or update dictionary request.");
if(dictionaryParameters==null){
message = XACMLErrorConstants.ERROR_DATA_ISSUE + "Dictionary Parameters are not given.";
return false;
@@ -134,11 +130,28 @@ public class CreateUpdateDictionaryService {
if(dictionaryParameters.getDictionaryJson()==null || dictionaryParameters.getDictionaryJson().isEmpty()){
message = XACMLErrorConstants.ERROR_DATA_ISSUE + "No Dictionary JSON given.";
return false;
- }
+ }
if (updateFlag && "MicroServiceDictionary".equalsIgnoreCase(dictionaryParameters.getDictionary())&& !dictionaryParameters.getDictionaryJson().contains("initialFields")){
message = XACMLErrorConstants.ERROR_DATA_ISSUE + "Mising the required field initialFields.";
return false;
}
+
+ try{
+ json = PolicyApiUtils.stringToJsonObject(dictionaryParameters.getDictionaryJson());
+ String result = PolicyApiUtils.validateDictionaryJsonFields(json.getJsonObject("dictionaryFields"), dictionaryParameters.getDictionary());
+
+ if(!"success".equals(result)) {
+ message = result;
+ return false;
+ }
+
+ }catch(JsonException| IllegalStateException e){
+ message = XACMLErrorConstants.ERROR_DATA_ISSUE+ " improper Dictionary JSON object : " + dictionaryParameters.getDictionaryJson();
+ LOGGER.error(message, e);
+ return false;
+ }
+
+ LOGGER.info("dictionary API request validation complete and valid.");
return true;
}