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() {