diff options
author | 2021-07-30 16:25:16 +0100 | |
---|---|---|
committer | 2021-08-10 13:33:52 +0100 | |
commit | 3139ece993c68ce7e40d166acdd5d9572a3a8a1e (patch) | |
tree | 4a9ee12234815d6f5bc14557d5228c53b66f3b81 /src/main/java/org/onap/cps/ncmp/dmi/rest/controller/DmiRestController.java | |
parent | 2270d76e4f33ad231cdae317e88ea1769297cfec (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.java | 32 |
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>>() {}); + } } |