X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=cps-ncmp-rest%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fcps%2Fncmp%2Frest%2Fcontroller%2FNetworkCmProxyController.java;h=0ad30f19c16960a9b49cb608cb9e6ac36b90df02;hb=23bd18865486d334647a4928104acce625795e18;hp=222957c9f489f19fe49b8bd4e62c6ae86a3d46f9;hpb=20b4f9cf0b662de4a7665b2a82593ef0205f5e06;p=cps.git diff --git a/cps-ncmp-rest/src/main/java/org/onap/cps/ncmp/rest/controller/NetworkCmProxyController.java b/cps-ncmp-rest/src/main/java/org/onap/cps/ncmp/rest/controller/NetworkCmProxyController.java index 222957c9f..0ad30f19c 100755 --- a/cps-ncmp-rest/src/main/java/org/onap/cps/ncmp/rest/controller/NetworkCmProxyController.java +++ b/cps-ncmp-rest/src/main/java/org/onap/cps/ncmp/rest/controller/NetworkCmProxyController.java @@ -23,6 +23,8 @@ package org.onap.cps.ncmp.rest.controller; import static org.onap.cps.ncmp.api.impl.operations.DmiRequestBody.OperationEnum.CREATE; +import static org.onap.cps.ncmp.api.impl.operations.DmiRequestBody.OperationEnum.DELETE; +import static org.onap.cps.ncmp.api.impl.operations.DmiRequestBody.OperationEnum.PATCH; import static org.onap.cps.ncmp.api.impl.operations.DmiRequestBody.OperationEnum.UPDATE; import com.google.gson.Gson; @@ -35,6 +37,7 @@ import java.util.stream.Collectors; import javax.validation.Valid; import javax.validation.constraints.NotNull; import lombok.extern.slf4j.Slf4j; +import org.modelmapper.ModelMapper; import org.onap.cps.ncmp.api.NetworkCmProxyDataService; import org.onap.cps.ncmp.rest.api.NetworkCmProxyApi; import org.onap.cps.ncmp.rest.model.CmHandleProperties; @@ -44,9 +47,9 @@ import org.onap.cps.ncmp.rest.model.ConditionProperties; import org.onap.cps.ncmp.rest.model.Conditions; import org.onap.cps.ncmp.rest.model.ModuleNameAsJsonObject; import org.onap.cps.ncmp.rest.model.ModuleNamesAsJsonArray; +import org.onap.cps.ncmp.rest.model.ModuleReference; import org.onap.cps.spi.FetchDescendantsOption; import org.onap.cps.spi.model.DataNode; -import org.onap.cps.spi.model.ModuleReference; import org.onap.cps.utils.DataMapUtils; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -60,6 +63,7 @@ public class NetworkCmProxyController implements NetworkCmProxyApi { private static final Gson GSON = new GsonBuilder().create(); + private final ModelMapper modelMapper = new ModelMapper(); private final NetworkCmProxyDataService networkCmProxyDataService; /** @@ -74,11 +78,12 @@ public class NetworkCmProxyController implements NetworkCmProxyApi { * Create Node. * @deprecated This Method is no longer used as part of NCMP. */ + // All deprecated APIs methods will be address into https://jira.onap.org/browse/CPS-642 @Override @Deprecated(forRemoval = false) - public ResponseEntity createNode(final String cmHandle, @Valid final String jsonData, + public ResponseEntity createNode(final String cmHandle, @Valid final Object jsonData, @Valid final String parentNodeXpath) { - networkCmProxyDataService.createDataNode(cmHandle, parentNodeXpath, jsonData); + networkCmProxyDataService.createDataNode(cmHandle, parentNodeXpath, GSON.toJson(jsonData)); return new ResponseEntity<>(HttpStatus.CREATED); } @@ -86,11 +91,12 @@ public class NetworkCmProxyController implements NetworkCmProxyApi { * Add List-node Child Element. * @deprecated This Method is no longer used as part of NCMP. */ + // All deprecated APIs methods will be address into https://jira.onap.org/browse/CPS-642 @Override @Deprecated(forRemoval = false) public ResponseEntity addListNodeElements(@NotNull @Valid final String parentNodeXpath, - final String cmHandle, @Valid final String jsonData) { - networkCmProxyDataService.addListNodeElements(cmHandle, parentNodeXpath, jsonData); + final String cmHandle, @Valid final Object jsonData) { + networkCmProxyDataService.addListNodeElements(cmHandle, parentNodeXpath, GSON.toJson(jsonData)); return new ResponseEntity<>(HttpStatus.CREATED); } @@ -98,6 +104,7 @@ public class NetworkCmProxyController implements NetworkCmProxyApi { * Get Node By CM Handle and X-Path. * @deprecated This Method is no longer used as part of NCMP. */ + // All deprecated APIs methods will be address into https://jira.onap.org/browse/CPS-642 @Override @Deprecated(forRemoval = false) public ResponseEntity getNodeByCmHandleAndXpath(final String cmHandle, @Valid final String xpath, @@ -112,6 +119,7 @@ public class NetworkCmProxyController implements NetworkCmProxyApi { * Query Data Nodes. * @deprecated This Method is no longer used as part of NCMP. */ + // All deprecated APIs methods will be address into https://jira.onap.org/browse/CPS-642 @Override @Deprecated(forRemoval = false) public ResponseEntity queryNodesByCmHandleAndCpsPath(final String cmHandle, @Valid final String cpsPath, @@ -127,11 +135,12 @@ public class NetworkCmProxyController implements NetworkCmProxyApi { * Replace Node With Descendants. * @deprecated This Method is no longer used as part of NCMP. */ + // All deprecated APIs methods will be address into https://jira.onap.org/browse/CPS-642 @Override @Deprecated(forRemoval = false) - public ResponseEntity replaceNode(final String cmHandle, @Valid final String jsonData, + public ResponseEntity replaceNode(final String cmHandle, @Valid final Object jsonData, @Valid final String parentNodeXpath) { - networkCmProxyDataService.replaceNodeTree(cmHandle, parentNodeXpath, jsonData); + networkCmProxyDataService.replaceNodeTree(cmHandle, parentNodeXpath, GSON.toJson(jsonData)); return new ResponseEntity<>(HttpStatus.OK); } @@ -139,11 +148,12 @@ public class NetworkCmProxyController implements NetworkCmProxyApi { * Update Node Leaves. * @deprecated This Method is no longer used as part of NCMP. */ + // All deprecated APIs methods will be address into https://jira.onap.org/browse/CPS-642 @Override @Deprecated(forRemoval = false) - public ResponseEntity updateNodeLeaves(final String cmHandle, @Valid final String jsonData, + public ResponseEntity updateNodeLeaves(final String cmHandle, @Valid final Object jsonData, @Valid final String parentNodeXpath) { - networkCmProxyDataService.updateNodeLeaves(cmHandle, parentNodeXpath, jsonData); + networkCmProxyDataService.updateNodeLeaves(cmHandle, parentNodeXpath, GSON.toJson(jsonData)); return new ResponseEntity<>(HttpStatus.OK); } @@ -189,8 +199,17 @@ public class NetworkCmProxyController implements NetworkCmProxyApi { return ResponseEntity.ok(responseObject); } + @Override + public ResponseEntity patchResourceDataRunningForCmHandle(final String resourceIdentifier, + final String cmHandle, + final Object requestBody, final String contentType) { + networkCmProxyDataService.writeResourceDataPassThroughRunningForCmHandle(cmHandle, + resourceIdentifier, PATCH, GSON.toJson(requestBody), contentType); + return new ResponseEntity<>(HttpStatus.OK); + } + /** - * Create resource data in datastore pass through running for given cm-handle. + * Create resource data in datastore pass-through running for given cm-handle. * * @param resourceIdentifier resource identifier * @param cmHandle cm handle identifier @@ -200,16 +219,14 @@ public class NetworkCmProxyController implements NetworkCmProxyApi { */ @Override public ResponseEntity createResourceDataRunningForCmHandle(final String resourceIdentifier, - final String cmHandle, - final String requestBody, - final String contentType) { + final String cmHandle, final Object requestBody, final String contentType) { networkCmProxyDataService.writeResourceDataPassThroughRunningForCmHandle(cmHandle, - resourceIdentifier, CREATE, requestBody, contentType); + resourceIdentifier, CREATE, GSON.toJson(requestBody), contentType); return new ResponseEntity<>(HttpStatus.CREATED); } /** - * Update resource data in datastore pass through running for given cm-handle. + * Update resource data in datastore pass-through running for given cm-handle. * * @param resourceIdentifier resource identifier * @param cmHandle cm handle identifier @@ -220,13 +237,34 @@ public class NetworkCmProxyController implements NetworkCmProxyApi { @Override public ResponseEntity updateResourceDataRunningForCmHandle(final String resourceIdentifier, final String cmHandle, - final String requestBody, + final Object requestBody, final String contentType) { networkCmProxyDataService.writeResourceDataPassThroughRunningForCmHandle(cmHandle, - resourceIdentifier, UPDATE, requestBody, contentType); + resourceIdentifier, UPDATE, GSON.toJson(requestBody), contentType); return new ResponseEntity<>(HttpStatus.OK); } + + /** + * Delete resource data in datastore pass-through running for a given cm-handle. + * + * @param resourceIdentifier resource identifier + * @param cmHandle cm handle identifier + * @param requestBody the request body + * @param contentType content type of the body + * @return response entity no content if request is successful + */ + @Override + public ResponseEntity deleteResourceDataRunningForCmHandle(final String resourceIdentifier, + final String cmHandle, + final Object requestBody, + final String contentType) { + + networkCmProxyDataService.writeResourceDataPassThroughRunningForCmHandle(cmHandle, + resourceIdentifier, DELETE, GSON.toJson(requestBody), contentType); + return new ResponseEntity<>(HttpStatus.NO_CONTENT); + } + /** * Execute cm handle search. * @@ -248,11 +286,12 @@ public class NetworkCmProxyController implements NetworkCmProxyApi { * @param cmHandle the cm handle * @return module references for cm handle */ - @Override - public ResponseEntity getModuleReferencesByCmHandle(final String cmHandle) { - final Collection - moduleReferences = networkCmProxyDataService.getYangResourcesModuleReferences(cmHandle); - return new ResponseEntity<>(new Gson().toJson(moduleReferences), HttpStatus.OK); + public ResponseEntity> getModuleReferencesByCmHandle(final String cmHandle) { + final List moduleReferences = + networkCmProxyDataService.getYangResourcesModuleReferences(cmHandle).stream() + .map(moduleReference -> modelMapper.map(moduleReference, ModuleReference.class)) + .collect(Collectors.toList()); + return new ResponseEntity<>(moduleReferences, HttpStatus.OK); } private Collection processConditions(final List conditionProperties) {