Update gRPC example for JSON Stringify 54/114854/1
authorliamfallon <liam.fallon@est.tech>
Mon, 16 Nov 2020 12:35:57 +0000 (12:35 +0000)
committerLiam Fallon <liam.fallon@est.tech>
Mon, 16 Nov 2020 17:04:19 +0000 (17:04 +0000)
The JSON.stringify() call in the Rhino Javascript interpreter is not
working correctly. A previous patch introduced a method into the Apex
execution context to provide an alternative method for stringifying
JSON.

This patch updates the gRPC example in apex to use that new method.

Issue-ID: POLICY-2463
Change-Id: I7f789c000d53dec60020fda2a6fccd71ef18edc3
Signed-off-by: liamfallon <liam.fallon@est.tech>
(cherry picked from commit fd5ee076b2ecf9fc5151090cf8a9b49fac6cf055)

examples/examples-grpc/src/main/resources/logic/CreateSubscriptionPayloadTask.js
examples/examples-grpc/src/main/resources/logic/ReceivePMSubscriptionTask.js

index 48f3184..85e7ae2 100644 (file)
@@ -35,11 +35,14 @@ var payloadEntry = executor.subject.getOutFieldSchemaHelper("payload").createNew
 payloadEntry.put("create_DasH_subscription_DasH_properties", payloadProperties)
 
 var payload = executor.subject.getOutFieldSchemaHelper("payload").createNewInstance();
+var payloadSchemaHelper = executor.subject.getOutFieldSchemaHelper("payload");
 payload.put("create_DasH_subscription_DasH_request", payloadEntry);
 
-executor.outFields.put("albumID", executor.inFields.get("albumID"))
+executor.logger.info("CDS payload - " + executor.stringify2Json( payload, payloadSchemaHelper));
+
+executor.outFields.put("albumID", executor.inFields.get("albumID"));
 executor.outFields.put("payload", payload);
 
-executor.logger.info("Sending Create Subscription Event to CDS")
+executor.logger.info("Sending Create Subscription Event to CDS");
 
-true;
+true;
\ No newline at end of file
index bc4028a..0134b6b 100644 (file)
@@ -18,6 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 var uuidType = java.util.UUID;
+var HashMapType = java.util.HashMap;
 
 
 //albumID will be used to fetch info from our album later
@@ -25,13 +26,21 @@ var albumID = uuidType.fromString("d0050623-18e5-46c9-9298-9a567990cd7c");
 var pmSubscriptionInfo = executor.getContextAlbum("PMSubscriptionAlbum").getSchemaHelper().createNewInstance();
 var returnValue = true;;
 
-if(executor.inFields.get("policyName") != null) {
+if (executor.inFields.get("policyName") != null) {
     var changeType = executor.inFields.get("changeType")
     var nfName = executor.inFields.get("nfName")
     var policyName = executor.inFields.get("policyName")
     var closedLoopControlName = executor.inFields.get("closedLoopControlName")
     var subscription = executor.inFields.get("subscription")
 
+    var obj = {};
+    obj["nfName"] = executor.inFields.get("nfName")
+    executor.logger.info("nfName" + executor.stringify2Json(obj))
+
+    var ticketInfo = new HashMapType();
+    populate_creator_info(ticketInfo);
+    executor.logger.info("ticketInfo" + executor.stringify2Json(ticketInfo))
+
     pmSubscriptionInfo.put("nfName", executor.inFields.get("nfName"));
     pmSubscriptionInfo.put("changeType", executor.inFields.get("changeType"))
     pmSubscriptionInfo.put("policyName", executor.inFields.get("policyName"))
@@ -45,4 +54,35 @@ if(executor.inFields.get("policyName") != null) {
     executor.message = "Received invalid event"
     returnValue = false;
 }
-returnValue;
\ No newline at end of file
+
+function populate_creator_info(ticketInfo){
+    populate_field(ticketInfo, "appId", "NSO");
+    populate_field(ticketInfo, "creatorId", "fidLab");
+    populate_field(ticketInfo, "creatorFirstName", "PSO");
+    populate_field(ticketInfo, "creatorLastName", "team7");
+    populate_field(ticketInfo, "creatorGroup", "PSO-team7");
+    populate_field(ticketInfo, "creatorPEIN", "0000000");
+    populate_field(ticketInfo, "creatorPhoneNumber", "800-450-7771");
+    populate_field(ticketInfo, "fid", "fidLab");
+    populate_field(ticketInfo, "organizationCode", "PSO");
+    populate_field(ticketInfo, "source", create_caEn_value("SURV/ALARM FROM/PSO"));
+    populate_field(ticketInfo, "customerName", "XYZ");
+    populate_field(ticketInfo, "authorization", "Basic dGVzdHVzZXI=");
+}
+
+function populate_field(mapname, name, value){
+    if (value == null){
+        mapname.put(name, "none");
+    } else{
+        mapname.put(name, value);
+    }
+
+}
+
+function create_caEn_value(value){
+    var attr = {};
+    attr["caEn"] = String(value);
+    return attr;
+}
+
+returnValue;