Improvement on dashboard backend
[portal/nonrtric-controlpanel.git] / webapp-backend / src / main / java / org / oransc / portal / nonrtric / controlpanel / policyagentapi / PolicyAgentApiImpl.java
index 56f2c38..9e30c51 100644 (file)
@@ -144,6 +144,14 @@ public class PolicyAgentApiImpl implements PolicyAgentApi {
             String url = "/v2/policies/" + id;
             ResponseEntity<String> rsp = webClient.getForEntity(url).block();
             JsonObject obj = JsonParser.parseString(rsp.getBody()).getAsJsonObject();
+
+            // lastModified timestamp is fetched from PolicyStatus instead
+            ResponseEntity<String> status = getPolicyStatus(id);
+            String lastModified = JsonParser.parseString(status.getBody()).getAsJsonObject() //
+                .get("last_modified") //
+                .getAsString(); //
+            obj.addProperty("lastModified", lastModified);
+
             PolicyInfo i = gson.fromJson(obj, PolicyInfo.class);
             return new ResponseEntity<>(i, rsp.getStatusCode());
         } catch (Exception e) {
@@ -152,6 +160,17 @@ public class PolicyAgentApiImpl implements PolicyAgentApi {
         }
     }
 
+    public ResponseEntity<String> getPolicyStatus(String id) {
+        try {
+            String url = "/v2/policies/" + id + "/status";
+            ResponseEntity<String> rsp = webClient.getForEntity(url).block();
+            return new ResponseEntity<>(rsp.getBody(), rsp.getStatusCode());
+        } catch (Exception e) {
+            ResponseEntity<String> rsp = ErrorResponseHandler.handleException(e);
+            return new ResponseEntity<>(rsp.getBody(), rsp.getStatusCode());
+        }
+    }
+
     @Override
     public ResponseEntity<Object> getPolicyInstance(String id) {
         ResponseEntity<Object> rsp = getIndividualPolicyInstance(id);
@@ -159,10 +178,6 @@ public class PolicyAgentApiImpl implements PolicyAgentApi {
         return new ResponseEntity<>(i.policyData, rsp.getStatusCode());
     }
 
-    private String getTimeStampUTC() {
-        return java.time.Instant.now().toString();
-    }
-
     @Override
     public ResponseEntity<String> putPolicy(String policyTypeIdString, String policyInstanceId, Object json,
         String ric) {
@@ -176,7 +191,6 @@ public class PolicyAgentApiImpl implements PolicyAgentApi {
             .ricId(ric) //
             .policyData(data) //
             .serviceId("controlpanel") //
-            .lastModified(getTimeStampUTC()) //
             .build(); //
 
         try {