Merge "Conflicting Error code"
[cps.git] / dmi-plugin-demo-and-csit-stub / dmi-plugin-demo-and-csit-stub-service / src / main / java / org / onap / cps / ncmp / dmi / rest / stub / controller / DmiRestStubController.java
index b7e67d7..3f9731d 100644 (file)
@@ -20,6 +20,8 @@
 
 package org.onap.cps.ncmp.dmi.rest.stub.controller;
 
+import static org.onap.cps.ncmp.api.NcmpResponseStatus.SUCCESS;
+
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import io.cloudevents.CloudEvent;
@@ -28,16 +30,14 @@ import java.net.URI;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.UUID;
-import java.util.stream.Collectors;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.json.simple.parser.JSONParser;
 import org.json.simple.parser.ParseException;
-import org.onap.cps.ncmp.api.NcmpEventResponseCode;
 import org.onap.cps.ncmp.api.impl.utils.EventDateTimeFormatter;
 import org.onap.cps.ncmp.dmi.rest.stub.model.data.operational.CmHandle;
 import org.onap.cps.ncmp.dmi.rest.stub.model.data.operational.DataOperationRequest;
-import org.onap.cps.ncmp.dmi.rest.stub.model.data.operational.ResourceDataOperationRequests;
+import org.onap.cps.ncmp.dmi.rest.stub.model.data.operational.DmiDataOperationRequest;
 import org.onap.cps.ncmp.dmi.rest.stub.utils.ResourceFileReaderUtil;
 import org.onap.cps.ncmp.events.async1_0_0.Data;
 import org.onap.cps.ncmp.events.async1_0_0.DataOperationEvent;
@@ -108,9 +108,9 @@ public class DmiRestStubController {
     /**
      * This method is not implemented for ONAP DMI plugin.
      *
-     * @param topic                         client given topic name
-     * @param requestId                     requestId generated by NCMP as an ack for client
-     * @param resourceDataOperationRequests list of operation details
+     * @param topic                   client given topic name
+     * @param requestId               requestId generated by NCMP as an ack for client
+     * @param dmiDataOperationRequest list of operation details
      * @return (@ code ResponseEntity) response entity
      */
     @PostMapping("/v1/data")
@@ -118,12 +118,17 @@ public class DmiRestStubController {
                                                                             final String topic,
                                                                         @RequestParam(value = "requestId")
                                                                         final String requestId,
-                                                                        @RequestBody final ResourceDataOperationRequests
-                                                                                resourceDataOperationRequests) {
-        log.info("Request received from the NCMP to DMI Plugin");
-        resourceDataOperationRequests.forEach(resourceDataOperationRequest -> {
-            final DataOperationEvent dataOperationEvent = getDataOperationEvent(resourceDataOperationRequest);
-            resourceDataOperationRequest.getCmHandles().forEach(cmHandle -> {
+                                                                        @RequestBody final DmiDataOperationRequest
+                                                                                    dmiDataOperationRequest) {
+        try {
+            log.info("Request received from the NCMP to DMI Plugin: {}",
+                    objectMapper.writeValueAsString(dmiDataOperationRequest));
+        } catch (final JsonProcessingException jsonProcessingException) {
+            log.info("Unable to process dmi data operation request to json string");
+        }
+        dmiDataOperationRequest.getOperations().forEach(dmiDataOperation -> {
+            final DataOperationEvent dataOperationEvent = getDataOperationEvent(dmiDataOperation);
+            dmiDataOperation.getCmHandles().forEach(cmHandle -> {
                 dataOperationEvent.getData().getResponses().get(0).setIds(List.of(cmHandle.getId()));
                 final CloudEvent cloudEvent = buildAndGetCloudEvent(topic, requestId, dataOperationEvent);
                 cloudEventKafkaTemplate.send(ncmpAsyncM2mTopic, UUID.randomUUID().toString(), cloudEvent);
@@ -156,9 +161,11 @@ public class DmiRestStubController {
     private DataOperationEvent getDataOperationEvent(final DataOperationRequest dataOperationRequest) {
         final Response response = new Response();
         response.setOperationId(dataOperationRequest.getOperationId());
-        response.setStatusCode(NcmpEventResponseCode.SUCCESS.getStatusCode());
-        response.setStatusMessage(NcmpEventResponseCode.SUCCESS.getStatusMessage());
-        response.setIds(dataOperationRequest.getCmHandles().stream().map(CmHandle::getId).collect(Collectors.toList()));
+        response.setStatusCode(SUCCESS.getCode());
+        response.setStatusMessage(SUCCESS.getMessage());
+        response.setIds(dataOperationRequest.getCmHandles().stream().map(CmHandle::getId).toList());
+        response.setResourceIdentifier(dataOperationRequest.getResourceIdentifier());
+        response.setOptions(dataOperationRequest.getOptions());
         final String ietfNetworkTopologySample = ResourceFileReaderUtil
                 .getResourceFileContent(applicationContext.getResource(
                         ResourceLoader.CLASSPATH_URL_PREFIX
@@ -169,7 +176,7 @@ public class DmiRestStubController {
         } catch (final ParseException parseException) {
             log.error("Unable to parse event result as json object. cause : {}", parseException.getMessage());
         }
-        final List<Response> responseList = new ArrayList<>();
+        final List<Response> responseList = new ArrayList<>(1);
         responseList.add(response);
         final Data data = new Data();
         data.setResponses(responseList);