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 <aditya.puthuparambil@bell.ca>
Change-Id: If4da380771093f2a06946340c015ffa5c39e105d
diff --git a/cps-rest/docs/api/swagger/openapi.yml b/cps-rest/docs/api/swagger/openapi.yml
index 2eed7e6..ff7cdf8 100755
--- a/cps-rest/docs/api/swagger/openapi.yml
+++ b/cps-rest/docs/api/swagger/openapi.yml
@@ -12,7 +12,7 @@
   /v1/dataspaces/{dataspace-name}/:
     delete:
       tags:
-        - cps-rest
+        - cps-admin
       summary: Delete the given dataspace
       operationId: deleteDataspace
       parameters:
@@ -41,7 +41,7 @@
   /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 @@
           content: {}
     post:
       tags:
-        - cps-rest
+        - cps-admin
       summary: Create a new anchor in the given dataspace
       operationId: createAnchor
       parameters:
@@ -111,7 +111,7 @@
   /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 @@
           content: {}
     delete:
       tags:
-        - cps-rest
+        - cps-admin
       summary: Delete an anchor given a anchor and a dataspace
       operationId: deleteAnchor
       parameters:
@@ -180,7 +180,7 @@
   /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 @@
           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 @@
       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 1802ce7..e2ce367
--- 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 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;
@@ -58,11 +57,6 @@
     }
 
     @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 @@
         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
index 0000000..c637cc6
--- /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<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;
+    }
+}
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 54f3db4..9d7f38a 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.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() {