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=d65caf13ca2f5a3568f4a5e99344e07634549beb;hb=e2a037745508a3c1ada650ea3571ca57f0a90851;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..d65caf13 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() { } @@ -58,10 +64,24 @@ class SdncJsonHelper { } return Flux.fromIterable(arrayList); } catch (JSONException ex) { // invalid json + logger.debug("Invalid json {}", ex.getMessage()); return Flux.error(ex); } } + public static Mono getCreateSchema(String policyTypeResponse, String policyTypeId) { + try { + JSONObject obj = new JSONObject(policyTypeResponse); + JSONObject schemaObj = obj.getJSONObject("create_schema"); + schemaObj.put("title", policyTypeId); + return Mono.just(schemaObj.toString()); + } catch (Exception e) { + String exceptionString = e.toString(); + logger.error("Unexpected response for policy type: {}, exception: {}", policyTypeResponse, exceptionString); + return Mono.error(e); + } + } + public static String createInputJsonString(T params) { JsonElement paramsJson = gson.toJsonTree(params); JsonObject jsonObj = new JsonObject(); @@ -69,20 +89,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 +125,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); } }