From 84ac94d2f3f9ebd6a3a7befa244beef851eac126 Mon Sep 17 00:00:00 2001 From: "puthuparambil.aditya" Date: Wed, 16 Dec 2020 16:51:08 +0000 Subject: Split the CpsRestController.java 1. Changes in openApi.yml tags to cps-admin and cps-data 2. 2 different controllers implementing the corresponding Interfaces generated by the openapi 3. CpsRestExceptionHandler.java modified to handle the exceptions from all the controllers Issue-ID: CPS-129 Signed-off-by: puthuparambil.aditya Change-Id: If4da380771093f2a06946340c015ffa5c39e105d --- .../cps/rest/controller/AdminRestController.java | 80 ++++++++++++++++ .../cps/rest/controller/CpsRestController.java | 102 --------------------- .../cps/rest/controller/DataRestController.java | 54 +++++++++++ .../rest/exceptions/CpsRestExceptionHandler.java | 5 +- 4 files changed, 137 insertions(+), 104 deletions(-) create mode 100644 cps-rest/src/main/java/org/onap/cps/rest/controller/AdminRestController.java delete mode 100755 cps-rest/src/main/java/org/onap/cps/rest/controller/CpsRestController.java create mode 100644 cps-rest/src/main/java/org/onap/cps/rest/controller/DataRestController.java (limited to 'cps-rest/src/main/java') diff --git a/cps-rest/src/main/java/org/onap/cps/rest/controller/AdminRestController.java b/cps-rest/src/main/java/org/onap/cps/rest/controller/AdminRestController.java new file mode 100644 index 000000000..e2ce367b0 --- /dev/null +++ b/cps-rest/src/main/java/org/onap/cps/rest/controller/AdminRestController.java @@ -0,0 +1,80 @@ +/* + * ============LICENSE_START======================================================= + * Copyright (C) 2020 Nordix Foundation + * Modifications Copyright (C) 2020 Bell Canada. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * SPDX-License-Identifier: Apache-2.0 + * ============LICENSE_END========================================================= + */ + +package org.onap.cps.rest.controller; + +import java.util.Collection; +import javax.validation.Valid; +import org.modelmapper.ModelMapper; +import org.onap.cps.api.CpsAdminService; +import org.onap.cps.rest.api.CpsAdminApi; +import org.onap.cps.spi.model.Anchor; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.RestController; + +@RestController +public class AdminRestController implements CpsAdminApi { + + @Autowired + private CpsAdminService cpsAdminService; + + @Autowired + private ModelMapper modelMapper; + + /** + * Create a new anchor. + * + * @param anchor the anchor details object. + * @param dataspaceName the dataspace name. + * @return a ResponseEntity with the anchor name. + */ + @Override + public ResponseEntity createAnchor(final org.onap.cps.rest.model.@Valid Anchor anchor, + final String dataspaceName) { + final Anchor anchorDetails = modelMapper.map(anchor, Anchor.class); + anchorDetails.setDataspaceName(dataspaceName); + final String anchorName = cpsAdminService.createAnchor(anchorDetails); + return new ResponseEntity<>(anchorName, HttpStatus.CREATED); + } + + @Override + public ResponseEntity deleteAnchor(final String dataspaceName, final String anchorName) { + return null; + } + + @Override + public ResponseEntity deleteDataspace(final String dataspaceName) { + return null; + } + + @Override + public ResponseEntity getAnchor(final String dataspaceName, final String anchorName) { + return null; + } + + @Override + + public ResponseEntity getAnchors(final String dataspaceName) { + final Collection anchorDetails = cpsAdminService.getAnchors(dataspaceName); + return new ResponseEntity<>(anchorDetails, HttpStatus.OK); + } +} diff --git a/cps-rest/src/main/java/org/onap/cps/rest/controller/CpsRestController.java b/cps-rest/src/main/java/org/onap/cps/rest/controller/CpsRestController.java deleted file mode 100755 index 1802ce7a7..000000000 --- a/cps-rest/src/main/java/org/onap/cps/rest/controller/CpsRestController.java +++ /dev/null @@ -1,102 +0,0 @@ -/* - * ============LICENSE_START======================================================= - * Copyright (C) 2020 Nordix Foundation - * Modifications Copyright (C) 2020 Bell Canada. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ - -package org.onap.cps.rest.controller; - -import java.util.Collection; -import javax.validation.Valid; -import org.modelmapper.ModelMapper; -import org.onap.cps.api.CpsAdminService; -import org.onap.cps.rest.api.CpsRestApi; -import org.onap.cps.spi.model.Anchor; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.RestController; -import org.springframework.web.multipart.MultipartFile; - -@RestController -public class CpsRestController implements CpsRestApi { - - @Autowired - private CpsAdminService cpsAdminService; - - @Autowired - private ModelMapper modelMapper; - - /** - * Create a new anchor. - * - * @param anchor the anchor details object. - * @param dataspaceName the dataspace name. - * @return a ResponseEntity with the anchor name. - */ - @Override - public ResponseEntity createAnchor(final org.onap.cps.rest.model.@Valid Anchor anchor, - final String dataspaceName) { - final Anchor anchorDetails = modelMapper.map(anchor, Anchor.class); - anchorDetails.setDataspaceName(dataspaceName); - final String anchorName = cpsAdminService.createAnchor(anchorDetails); - return new ResponseEntity<>(anchorName, HttpStatus.CREATED); - } - - @Override - public ResponseEntity createNode(@Valid final MultipartFile multipartFile, final String dataspaceName) { - return null; - } - - @Override - public ResponseEntity deleteAnchor(final String dataspaceName, final String anchorName) { - return null; - } - - @Override - public ResponseEntity deleteDataspace(final String dataspaceName) { - return null; - } - - @Override - public ResponseEntity getAnchor(final String dataspaceName, final String anchorName) { - return null; - } - - @Override - - public ResponseEntity getAnchors(final String dataspaceName) { - final Collection anchorDetails = cpsAdminService.getAnchors(dataspaceName); - return new ResponseEntity<>(anchorDetails, HttpStatus.OK); - } - - @Override - public ResponseEntity getModule(final String dataspaceName, @Valid final String namespaceName, - @Valid final String revision) { - return null; - } - - @Override - public ResponseEntity getNode(final String dataspaceName) { - return null; - } - - @Override - public ResponseEntity getNodeByDataspaceAndAnchor(final String dataspaceName, final String anchorName) { - return null; - } -} diff --git a/cps-rest/src/main/java/org/onap/cps/rest/controller/DataRestController.java b/cps-rest/src/main/java/org/onap/cps/rest/controller/DataRestController.java new file mode 100644 index 000000000..c637cc6d8 --- /dev/null +++ b/cps-rest/src/main/java/org/onap/cps/rest/controller/DataRestController.java @@ -0,0 +1,54 @@ +/* + * ============LICENSE_START======================================================= + * Copyright (C) 2020 Bell Canada. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * SPDX-License-Identifier: Apache-2.0 + * ============LICENSE_END========================================================= + */ + +package org.onap.cps.rest.controller; + +import javax.validation.Valid; +import org.modelmapper.ModelMapper; +import org.onap.cps.api.CpsAdminService; +import org.onap.cps.rest.api.CpsDataApi; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.multipart.MultipartFile; + +@RestController +public class DataRestController implements CpsDataApi { + + @Autowired + private CpsAdminService cpsAdminService; + + @Autowired + private ModelMapper modelMapper; + + @Override + public ResponseEntity createNode(@Valid final MultipartFile multipartFile, final String dataspaceName) { + return null; + } + + @Override + public ResponseEntity getNode(final String dataspaceName) { + return null; + } + + @Override + public ResponseEntity getNodeByDataspaceAndAnchor(final String dataspaceName, final String anchorName) { + return null; + } +} diff --git a/cps-rest/src/main/java/org/onap/cps/rest/exceptions/CpsRestExceptionHandler.java b/cps-rest/src/main/java/org/onap/cps/rest/exceptions/CpsRestExceptionHandler.java index 54f3db4a0..9d7f38ae8 100644 --- a/cps-rest/src/main/java/org/onap/cps/rest/exceptions/CpsRestExceptionHandler.java +++ b/cps-rest/src/main/java/org/onap/cps/rest/exceptions/CpsRestExceptionHandler.java @@ -20,7 +20,8 @@ package org.onap.cps.rest.exceptions; import org.apache.commons.lang3.exception.ExceptionUtils; -import org.onap.cps.rest.controller.CpsRestController; +import org.onap.cps.rest.controller.AdminRestController; +import org.onap.cps.rest.controller.DataRestController; import org.onap.cps.rest.model.ErrorMessage; import org.onap.cps.spi.exceptions.AnchorAlreadyDefinedException; import org.onap.cps.spi.exceptions.CpsAdminException; @@ -34,7 +35,7 @@ import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.RestControllerAdvice; -@RestControllerAdvice(assignableTypes = {CpsRestController.class}) +@RestControllerAdvice(assignableTypes = {AdminRestController.class, DataRestController.class}) public class CpsRestExceptionHandler { private CpsRestExceptionHandler() { -- cgit 1.2.3-korg