summaryrefslogtreecommitdiffstats
path: root/src/main/java/org/onap/cps/ncmp/dmi/rest/controller/DmiRestController.java
diff options
context:
space:
mode:
authorniamhcore <niamh.core@est.tech>2021-07-30 16:25:16 +0100
committerniamhcore <niamh.core@est.tech>2021-08-10 13:33:52 +0100
commit3139ece993c68ce7e40d166acdd5d9572a3a8a1e (patch)
tree4a9ee12234815d6f5bc14557d5228c53b66f3b81 /src/main/java/org/onap/cps/ncmp/dmi/rest/controller/DmiRestController.java
parent2270d76e4f33ad231cdae317e88ea1769297cfec (diff)
Retrieve yang-resources for one or more modules
Updating openapi to add a new rest endpoint Updating restconf client to support post with json Adding a ModuleResourceNotFound exception Adding a test util class Fixing merge conflict Refactoring SDNC operations Issue-ID: CPS-484 Signed-off-by: niamhcore <niamh.core@est.tech> Change-Id: Id76dfe4cb12053771883e0271153d7bf7cd98548
Diffstat (limited to 'src/main/java/org/onap/cps/ncmp/dmi/rest/controller/DmiRestController.java')
-rw-r--r--src/main/java/org/onap/cps/ncmp/dmi/rest/controller/DmiRestController.java32
1 files changed, 28 insertions, 4 deletions
diff --git a/src/main/java/org/onap/cps/ncmp/dmi/rest/controller/DmiRestController.java b/src/main/java/org/onap/cps/ncmp/dmi/rest/controller/DmiRestController.java
index 0e1d3d67..5725f094 100644
--- a/src/main/java/org/onap/cps/ncmp/dmi/rest/controller/DmiRestController.java
+++ b/src/main/java/org/onap/cps/ncmp/dmi/rest/controller/DmiRestController.java
@@ -20,14 +20,17 @@
package org.onap.cps.ncmp.dmi.rest.controller;
+import com.fasterxml.jackson.core.type.TypeReference;
+import com.fasterxml.jackson.databind.ObjectMapper;
import java.util.List;
import javax.validation.Valid;
import lombok.extern.slf4j.Slf4j;
import org.onap.cps.ncmp.dmi.model.CmHandles;
+import org.onap.cps.ncmp.dmi.model.ModuleReference;
+import org.onap.cps.ncmp.dmi.model.ModuleRequestParent;
import org.onap.cps.ncmp.dmi.rest.api.DmiPluginApi;
import org.onap.cps.ncmp.dmi.rest.api.DmiPluginInternalApi;
import org.onap.cps.ncmp.dmi.service.DmiService;
-import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.RequestMapping;
@@ -40,9 +43,11 @@ public class DmiRestController implements DmiPluginApi, DmiPluginInternalApi {
private DmiService dmiService;
- @Autowired
- public DmiRestController(final DmiService dmiService) {
+ private ObjectMapper objectMapper;
+
+ public DmiRestController(final DmiService dmiService, final ObjectMapper objectMapper) {
this.dmiService = dmiService;
+ this.objectMapper = objectMapper;
}
@Override
@@ -52,11 +57,25 @@ public class DmiRestController implements DmiPluginApi, DmiPluginInternalApi {
return new ResponseEntity<>(modulesListAsJson, HttpStatus.OK);
}
+ @Override
+ public ResponseEntity<Object> retrieveModuleResources(@Valid final ModuleRequestParent moduleRequestParent,
+ final String cmHandle) {
+ if (moduleRequestParent.getOperation().toString().equals("read")) {
+ final var moduleReferenceList = convertRestObjectToJavaApiObject(moduleRequestParent);
+ final var response = dmiService.getModuleResources(cmHandle, moduleReferenceList);
+ if (response.isEmpty()) {
+ return new ResponseEntity<>(response, HttpStatus.NOT_FOUND);
+ }
+ return new ResponseEntity<>(response, HttpStatus.OK);
+ }
+ return new ResponseEntity<>("Unsupported operation", HttpStatus.CONFLICT);
+ }
+
/**
* This method register given list of cm-handles to ncmp.
*
* @param cmHandles list of cm-handles
- * @return (@code ResponseEntity) response entity
+ * @return (@ code ResponseEntity) response entity
*/
public ResponseEntity<String> registerCmHandles(final @Valid CmHandles cmHandles) {
final List<String> cmHandlesList = cmHandles.getCmHandles();
@@ -66,4 +85,9 @@ public class DmiRestController implements DmiPluginApi, DmiPluginInternalApi {
dmiService.registerCmHandles(cmHandlesList);
return new ResponseEntity<>("cm-handle registered successfully.", HttpStatus.CREATED);
}
+
+ private List<ModuleReference> convertRestObjectToJavaApiObject(final ModuleRequestParent moduleRequestParent) {
+ return objectMapper
+ .convertValue(moduleRequestParent.getData().getModules(), new TypeReference<List<ModuleReference>>() {});
+ }
}