X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=policy-agent%2Fsrc%2Fmain%2Fjava%2Forg%2Foransc%2Fpolicyagent%2Fclients%2FSdncJsonHelper.java;h=ab0d3fa83762bcfe3fb6fe480037c719e8e37f47;hb=4916d96ee10a9f351356b026c84a3cd7ee8165e6;hp=0245a1537ab5b20b2793f523c8b3968a8a2fb360;hpb=222a0318c0551eaa4b827a19c7eb5e380a68faf6;p=nonrtric.git diff --git a/policy-agent/src/main/java/org/oransc/policyagent/clients/SdncJsonHelper.java b/policy-agent/src/main/java/org/oransc/policyagent/clients/SdncJsonHelper.java index 0245a153..ab0d3fa8 100644 --- a/policy-agent/src/main/java/org/oransc/policyagent/clients/SdncJsonHelper.java +++ b/policy-agent/src/main/java/org/oransc/policyagent/clients/SdncJsonHelper.java @@ -26,12 +26,15 @@ import com.google.gson.GsonBuilder; import com.google.gson.JsonElement; import com.google.gson.JsonObject; +import java.lang.invoke.MethodHandles; import java.util.ArrayList; import java.util.List; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; @@ -39,10 +42,13 @@ import reactor.core.publisher.Mono; /** * Common json functionality used by the SDNC clients */ +@SuppressWarnings("java:S1192") // Same text in several traces class SdncJsonHelper { private static Gson gson = new GsonBuilder() // .setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_DASHES) // .create(); + private static final String OUTPUT = "output"; + private static final Logger logger = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass()); private SdncJsonHelper() { } @@ -53,11 +59,13 @@ class SdncJsonHelper { if (!inputString.isEmpty()) { JSONArray jsonArray = new JSONArray(inputString); for (int i = 0; i < jsonArray.length(); i++) { - arrayList.add(jsonArray.getString(i)); + Object value = jsonArray.get(i); + arrayList.add(value.toString()); } } return Flux.fromIterable(arrayList); } catch (JSONException ex) { // invalid json + logger.debug("Invalid json {}", ex.getMessage()); return Flux.error(ex); } } @@ -69,20 +77,35 @@ class SdncJsonHelper { return gson.toJson(jsonObj); } - public static Mono getValueFromResponse(String response, String key) { + public static String createOutputJsonString(T params) { + JsonElement paramsJson = gson.toJsonTree(params); + JsonObject jsonObj = new JsonObject(); + jsonObj.add(OUTPUT, paramsJson); + return gson.toJson(jsonObj); + } + + public static Mono getOutput(String response) { try { JSONObject outputJson = new JSONObject(response); - JSONObject responseParams = outputJson.getJSONObject("output"); - if (!responseParams.has(key)) { - return Mono.just(""); - } - String value = responseParams.get(key).toString(); - return Mono.just(value); + JSONObject responseParams = outputJson.getJSONObject(OUTPUT); + return Mono.just(responseParams); } catch (JSONException ex) { // invalid json + logger.debug("Invalid json {}", ex.getMessage()); return Mono.error(ex); } } + public static Mono getValueFromResponse(String response, String key) { + return getOutput(response) // + .flatMap(responseParams -> { + if (!responseParams.has(key)) { + return Mono.just(""); + } + String value = responseParams.get(key).toString(); + return Mono.just(value); + }); + } + public static Mono extractPolicySchema(String inputString) { try { JSONObject jsonObject = new JSONObject(inputString); @@ -90,6 +113,7 @@ class SdncJsonHelper { String schemaString = schemaObject.toString(); return Mono.just(schemaString); } catch (JSONException ex) { // invalid json + logger.debug("Invalid json {}", ex.getMessage()); return Mono.error(ex); } }