From 84ac94d2f3f9ebd6a3a7befa244beef851eac126 Mon Sep 17 00:00:00 2001 From: "puthuparambil.aditya" Date: Wed, 16 Dec 2020 16:51:08 +0000 Subject: [PATCH] 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/docs/api/swagger/openapi.yml | 55 ++++------------------ ...estController.java => AdminRestController.java} | 26 +--------- .../cps/rest/controller/DataRestController.java | 54 +++++++++++++++++++++ .../rest/exceptions/CpsRestExceptionHandler.java | 5 +- 4 files changed, 67 insertions(+), 73 deletions(-) rename cps-rest/src/main/java/org/onap/cps/rest/controller/{CpsRestController.java => AdminRestController.java} (78%) mode change 100755 => 100644 create mode 100644 cps-rest/src/main/java/org/onap/cps/rest/controller/DataRestController.java diff --git a/cps-rest/docs/api/swagger/openapi.yml b/cps-rest/docs/api/swagger/openapi.yml index 2eed7e633..ff7cdf873 100755 --- a/cps-rest/docs/api/swagger/openapi.yml +++ b/cps-rest/docs/api/swagger/openapi.yml @@ -12,7 +12,7 @@ paths: /v1/dataspaces/{dataspace-name}/: delete: tags: - - cps-rest + - cps-admin summary: Delete the given dataspace operationId: deleteDataspace parameters: @@ -41,7 +41,7 @@ paths: /v1/dataspaces/{dataspace-name}/anchors: get: tags: - - cps-rest + - cps-admin summary: Read all anchors, given a dataspace operationId: getAnchors parameters: @@ -74,7 +74,7 @@ paths: content: {} post: tags: - - cps-rest + - cps-admin summary: Create a new anchor in the given dataspace operationId: createAnchor parameters: @@ -111,7 +111,7 @@ paths: /v1/dataspaces/{dataspace-name}/anchors/{anchor-name}: get: tags: - - cps-rest + - cps-admin summary: Read an anchor given a anchor and a dataspace operationId: getAnchor parameters: @@ -145,7 +145,7 @@ paths: content: {} delete: tags: - - cps-rest + - cps-admin summary: Delete an anchor given a anchor and a dataspace operationId: deleteAnchor parameters: @@ -180,7 +180,7 @@ paths: /v1/dataspaces/{dataspace-name}/anchors/{anchor-name}/nodes: get: tags: - - cps-rest + - cps-data summary: Get a node given an anchor for the given dataspace operationId: getNodeByDataspaceAndAnchor parameters: @@ -213,49 +213,10 @@ paths: description: Not Found content: {} x-codegen-request-body-name: xpath - /v1/dataspaces/{dataspace-name}/modules: - get: - tags: - - cps-rest - summary: Read all yang modules in the store - operationId: getModule - parameters: - - name: dataspace-name - in: path - description: dataspace-name - required: true - schema: - type: string - - name: namespace-name - in: query - description: namespace-name - schema: - type: string - - name: revision - in: query - description: revision - schema: - type: string - responses: - 200: - description: OK - content: - application/json: - schema: - type: object - 401: - description: Unauthorized - content: {} - 403: - description: Forbidden - content: {} - 404: - description: Not Found - content: {} /v1/dataspaces/{dataspace-name}/nodes: get: tags: - - cps-rest + - cps-data summary: Get all nodes for a given dataspace using an xpath or schema node identifier operationId: getNode parameters: @@ -284,7 +245,7 @@ paths: x-codegen-request-body-name: requestBody post: tags: - - cps-rest + - cps-data summary: Create a node for a given anchor for the given dataspace operationId: createNode parameters: 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/AdminRestController.java old mode 100755 new mode 100644 similarity index 78% rename from cps-rest/src/main/java/org/onap/cps/rest/controller/CpsRestController.java rename to cps-rest/src/main/java/org/onap/cps/rest/controller/AdminRestController.java index 1802ce7a7..e2ce367b0 --- a/cps-rest/src/main/java/org/onap/cps/rest/controller/CpsRestController.java +++ b/cps-rest/src/main/java/org/onap/cps/rest/controller/AdminRestController.java @@ -24,16 +24,15 @@ 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.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; -import org.springframework.web.multipart.MultipartFile; @RestController -public class CpsRestController implements CpsRestApi { +public class AdminRestController implements CpsAdminApi { @Autowired private CpsAdminService cpsAdminService; @@ -57,11 +56,6 @@ public class CpsRestController implements CpsRestApi { 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; @@ -83,20 +77,4 @@ public class CpsRestController implements CpsRestApi { 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() { -- 2.16.6