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=4d3cbf88044f026a21ab3c0c099506525ffe301a;hb=d64e33d4e0d1f519b295c8f1e09a3fcb414fdfbb;hp=7c6696129c2a8ba995deda8f742bffbc362c79ff;hpb=f700867fa65c7172cee7fca229eb10f2ecdf77dd;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 7c669612..4d3cbf88 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 @@ -23,13 +23,18 @@ package org.oransc.policyagent.clients; import com.google.gson.FieldNamingPolicy; import com.google.gson.Gson; 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; @@ -37,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() { } @@ -56,30 +64,47 @@ class SdncJsonHelper { } return Flux.fromIterable(arrayList); } catch (JSONException ex) { // invalid json + logger.debug("Invalid json {}", ex.getMessage()); return Flux.error(ex); } } public static String createInputJsonString(T params) { - JSONObject inputJson = new JSONObject(); - inputJson.put("input", gson.toJson(params)); - return inputJson.toString(); + JsonElement paramsJson = gson.toJsonTree(params); + JsonObject jsonObj = new JsonObject(); + jsonObj.add("input", paramsJson); + 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); @@ -87,6 +112,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); } }