Split the CpsRestController.java 30/116430/4
authorputhuparambil.aditya <aditya.puthuparambil@bell.ca>
Wed, 16 Dec 2020 16:51:08 +0000 (16:51 +0000)
committerRishi Chail <rishi.chail@est.tech>
Thu, 17 Dec 2020 12:24:44 +0000 (12:24 +0000)
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 <aditya.puthuparambil@bell.ca>
Change-Id: If4da380771093f2a06946340c015ffa5c39e105d

cps-rest/docs/api/swagger/openapi.yml
cps-rest/src/main/java/org/onap/cps/rest/controller/AdminRestController.java [moved from cps-rest/src/main/java/org/onap/cps/rest/controller/CpsRestController.java with 78% similarity, mode: 0644]
cps-rest/src/main/java/org/onap/cps/rest/controller/DataRestController.java [new file with mode: 0644]
cps-rest/src/main/java/org/onap/cps/rest/exceptions/CpsRestExceptionHandler.java

index 2eed7e6..ff7cdf8 100755 (executable)
@@ -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:
@@ -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<Object> createNode(@Valid final MultipartFile multipartFile, final String dataspaceName) {
-        return null;
-    }
-
     @Override
     public ResponseEntity<Object> deleteAnchor(final String dataspaceName, final String anchorName) {
         return null;
@@ -83,20 +77,4 @@ public class CpsRestController implements CpsRestApi {
         final Collection<Anchor> anchorDetails = cpsAdminService.getAnchors(dataspaceName);
         return new ResponseEntity<>(anchorDetails, HttpStatus.OK);
     }
-
-    @Override
-    public ResponseEntity<Object> getModule(final String dataspaceName, @Valid final String namespaceName,
-        @Valid final String revision) {
-        return null;
-    }
-
-    @Override
-    public ResponseEntity<Object> getNode(final String dataspaceName) {
-        return null;
-    }
-
-    @Override
-    public ResponseEntity<Object> 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 (file)
index 0000000..c637cc6
--- /dev/null
@@ -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<Object> createNode(@Valid final MultipartFile multipartFile, final String dataspaceName) {
+        return null;
+    }
+
+    @Override
+    public ResponseEntity<Object> getNode(final String dataspaceName) {
+        return null;
+    }
+
+    @Override
+    public ResponseEntity<Object> getNodeByDataspaceAndAnchor(final String dataspaceName, final String anchorName) {
+        return null;
+    }
+}
index 54f3db4..9d7f38a 100644 (file)
@@ -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() {