Use static constants instead
[cli.git] / profiles / http / src / main / java / org / onap / cli / fw / http / schema / OnapCommandSchemaHttpLoader.java
index 8e01b58..55295aa 100644 (file)
@@ -47,6 +47,12 @@ import net.minidev.json.JSONObject;
 
 public class OnapCommandSchemaHttpLoader {
 
+    private static final String ATTRIBUTE = "Attribute '";
+
+    private OnapCommandSchemaHttpLoader() {
+        // to follow standards !
+    }
+
     public static List<String> loadHttpSchema(OnapHttpCommand cmd, String schemaName, boolean includeDefault,
                                           boolean validateSchema) throws OnapCommandException {
         try {
@@ -131,6 +137,20 @@ public class OnapCommandSchemaHttpLoader {
                                             Map<String, String> query = (Map<String, String>) map.get(key2);
 
                                             cmd.getInput().setReqQueries(query);
+                                            break;
+                                        case OnapCommandHttpConstants.CONTEXT:
+                                            Map<String, Object> context = (Map<String, Object>) map.get(key2);
+
+                                            for (String key: context.keySet()) {
+                                                switch (key) {
+                                                    case OnapCommandHttpConstants.CONTEXT_REMOVE_EMPTY_JSON_NODES:
+                                                        Boolean flag = (Boolean) context.get(OnapCommandHttpConstants.CONTEXT_REMOVE_EMPTY_JSON_NODES);
+                                                        cmd.getInput().getContext().put(OnapCommandHttpConstants.CONTEXT_REMOVE_EMPTY_JSON_NODES, flag.toString());
+                                                        break;
+                                                }
+                                            }
+
+
                                             break;
                                         case OnapCommandHttpConstants.MULTIPART_ENTITY_NAME:
                                             Object multipartEntityName = map.get(key2);
@@ -160,11 +180,11 @@ public class OnapCommandSchemaHttpLoader {
                                         if (serviceMap.containsKey(secKey)) {
                                             Object obj = serviceMap.get(secKey);
                                             if (obj == null) {
-                                                errorList.add("Attribute '" + secKey + "' under '" + OnapCommandHttpConstants.SERVICE + "' is empty");
+                                                errorList.add(ATTRIBUTE + secKey + "' under '" + OnapCommandHttpConstants.SERVICE + "' is empty");
                                             } else {
                                                 String value = String.valueOf(obj);
                                                 if (!OnapCommandConfig.getCommaSeparatedList(validationMap.get(secKey)).contains(value)) {
-                                                    errorList.add("Attribute '" + secKey + "' contains invalid value. Valide values are "
+                                                    errorList.add(ATTRIBUTE + secKey + "' contains invalid value. Valide values are "
                                                             + OnapCommandConfig.getCommaSeparatedList(validationMap.get(key1))); //
                                                 }
                                             }
@@ -270,7 +290,7 @@ public class OnapCommandSchemaHttpLoader {
             String method = (String) requestMap.get(OnapCommandHttpConstants.METHOD);
             if (method != null && !method.isEmpty()) {
                 if (!OnapCommandConfig.getCommaSeparatedList(OnapCommandHttpConstants.HTTP_METHODS).contains(method.toLowerCase())) {
-                    errorList.add("Attribute '" + OnapCommandHttpConstants.METHOD + "' under '" + OnapCommandHttpConstants.REQUEST + "' is invalid, correct types are "
+                    errorList.add(ATTRIBUTE + OnapCommandHttpConstants.METHOD + "' under '" + OnapCommandHttpConstants.REQUEST + "' is invalid, correct types are "
                             + OnapCommandConfig.getCommaSeparatedList(OnapCommandHttpConstants.HTTP_METHODS).toString());
                 }
             } else {
@@ -371,15 +391,17 @@ public class OnapCommandSchemaHttpLoader {
         }
 
         String body = String.valueOf(bodyString);
-        JSONObject obj = null;
-        try {
-            obj = new ObjectMapper().readValue(body, JSONObject.class);
-        } catch (IOException e1) { // NOSONAR
-            errorList.add(OnapCommandHttpConstants.HTTP_BODY_FAILED_PARSING);
-        }
-        if (obj == null || "".equals(obj.toString())) {
+
+        if (body == null || "".equals(body)) {
             errorList.add(OnapCommandHttpConstants.HTTP_BODY_JSON_EMPTY);
+        } else {
+            try {
+                new ObjectMapper().readValue(body, JSONObject.class);
+            } catch (IOException e1) { // NOSONAR
+                errorList.add(OnapCommandHttpConstants.HTTP_BODY_FAILED_PARSING);
+            }
         }
+
         OnapCommandUtils.parseParameters(body, bodyParamNames);
 
         return bodyParamNames;