summaryrefslogtreecommitdiffstats
path: root/cps-rest
diff options
context:
space:
mode:
authorniamhcore <niamh.core@est.tech>2021-01-28 16:11:52 +0000
committerniamhcore <niamh.core@est.tech>2021-02-01 14:18:35 +0000
commit74753d923b77d87b17e8221ecc86a084446648b7 (patch)
tree19d933504e9a9040da75d478b2298b8413283c42 /cps-rest
parent3cf66a1b795042ade82a8c9cb2b4df978bc6485d (diff)
Attach a (JSON) data instance for a container with children to a given Anchor
Issue-ID: CPS-26 Signed-off-by: niamhcore <niamh.core@est.tech> Change-Id: I38fc1b1a6ccf84e64eff3218372b40c8fa2491ba
Diffstat (limited to 'cps-rest')
-rw-r--r--cps-rest/docs/api/swagger/cpsData.yml43
-rw-r--r--cps-rest/src/main/java/org/onap/cps/rest/controller/DataRestController.java18
-rw-r--r--cps-rest/src/test/groovy/org/onap/cps/rest/controller/AdminRestControllerSpec.groovy4
-rw-r--r--cps-rest/src/test/groovy/org/onap/cps/rest/exceptions/CpsRestExceptionHandlerSpec.groovy4
4 files changed, 39 insertions, 30 deletions
diff --git a/cps-rest/docs/api/swagger/cpsData.yml b/cps-rest/docs/api/swagger/cpsData.yml
index c33cf168e..dcdb99adc 100644
--- a/cps-rest/docs/api/swagger/cpsData.yml
+++ b/cps-rest/docs/api/swagger/cpsData.yml
@@ -20,46 +20,47 @@ nodesByDataspaceAndAnchor:
$ref: 'components.yaml#/components/responses/NotFound'
x-codegen-request-body-name: xpath
-nodesByDataspace:
- get:
+ post:
tags:
- cps-data
- summary: Get all nodes for a given dataspace using an xpath or schema node identifier - DRAFT
- operationId: getNode
+ summary: Create a node for a given anchor for the given dataspace
+ operationId: createNode
parameters:
- $ref: 'components.yaml#/components/parameters/dataspaceNameInPath'
+ - $ref: 'components.yaml#/components/parameters/anchorNameInPath'
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: string
responses:
- 200:
- $ref: 'components.yaml#/components/responses/Ok'
+ 201:
+ $ref: 'components.yaml#/components/responses/Created'
400:
$ref: 'components.yaml#/components/responses/BadRequest'
401:
$ref: 'components.yaml#/components/responses/Unauthorized'
403:
$ref: 'components.yaml#/components/responses/Forbidden'
- 404:
- $ref: 'components.yaml#/components/responses/NotFound'
- x-codegen-request-body-name: requestBody
- post:
+nodesByDataspace:
+ get:
tags:
- cps-data
- summary: Create a node for a given anchor for the given dataspace - DRAFT
- operationId: createNode
+ summary: Get all nodes for a given dataspace using an xpath or schema node identifier - DRAFT
+ operationId: getNode
parameters:
- $ref: 'components.yaml#/components/parameters/dataspaceNameInPath'
- requestBody:
- content:
- multipart/form-data:
- schema:
- $ref: 'components.yaml#/components/schemas/MultipartFile'
- required: true
responses:
- 201:
- $ref: 'components.yaml#/components/responses/Created'
+ 200:
+ $ref: 'components.yaml#/components/responses/Ok'
400:
$ref: 'components.yaml#/components/responses/BadRequest'
401:
$ref: 'components.yaml#/components/responses/Unauthorized'
403:
- $ref: 'components.yaml#/components/responses/Forbidden' \ No newline at end of file
+ $ref: 'components.yaml#/components/responses/Forbidden'
+ 404:
+ $ref: 'components.yaml#/components/responses/NotFound'
+ x-codegen-request-body-name: requestBody \ No newline at end of file
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
index 2ecbd4f54..07f555383 100644
--- 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
@@ -20,28 +20,27 @@
package org.onap.cps.rest.controller;
import javax.validation.Valid;
-import org.modelmapper.ModelMapper;
-import org.onap.cps.api.CpsAdminService;
+import javax.validation.constraints.NotNull;
+import org.onap.cps.api.CpsDataService;
import org.onap.cps.rest.api.CpsDataApi;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
-import org.springframework.web.multipart.MultipartFile;
@RestController
@RequestMapping("${rest.api.base-path}")
public class DataRestController implements CpsDataApi {
@Autowired
- private CpsAdminService cpsAdminService;
-
- @Autowired
- private ModelMapper modelMapper;
+ private CpsDataService cpsDataService;
@Override
- public ResponseEntity<String> createNode(@Valid final MultipartFile multipartFile, final String dataspaceName) {
- return null;
+ public ResponseEntity<String> createNode(@Valid final String jsonData, @NotNull final String dataspaceName,
+ @NotNull @Valid final String anchorName) {
+ cpsDataService.saveData(dataspaceName, anchorName, jsonData);
+ return new ResponseEntity<>(HttpStatus.CREATED);
}
@Override
@@ -53,4 +52,5 @@ public class DataRestController implements CpsDataApi {
public ResponseEntity<Object> getNodeByDataspaceAndAnchor(final String dataspaceName, final String anchorName) {
return null;
}
+
}
diff --git a/cps-rest/src/test/groovy/org/onap/cps/rest/controller/AdminRestControllerSpec.groovy b/cps-rest/src/test/groovy/org/onap/cps/rest/controller/AdminRestControllerSpec.groovy
index 540d6224a..c1c7c5dcd 100644
--- a/cps-rest/src/test/groovy/org/onap/cps/rest/controller/AdminRestControllerSpec.groovy
+++ b/cps-rest/src/test/groovy/org/onap/cps/rest/controller/AdminRestControllerSpec.groovy
@@ -22,6 +22,7 @@ package org.onap.cps.rest.controller
import org.modelmapper.ModelMapper
import org.onap.cps.api.CpsAdminService
+import org.onap.cps.api.CpsDataService
import org.onap.cps.api.CpsModuleService
import org.onap.cps.spi.exceptions.DataspaceAlreadyDefinedException
import org.onap.cps.spi.exceptions.SchemaSetInUseException
@@ -56,6 +57,9 @@ class AdminRestControllerSpec extends Specification {
CpsAdminService mockCpsAdminService = Mock()
@SpringBean
+ CpsDataService mockCpsDataService = Mock()
+
+ @SpringBean
ModelMapper modelMapper = Mock()
@Autowired
diff --git a/cps-rest/src/test/groovy/org/onap/cps/rest/exceptions/CpsRestExceptionHandlerSpec.groovy b/cps-rest/src/test/groovy/org/onap/cps/rest/exceptions/CpsRestExceptionHandlerSpec.groovy
index edc484b14..7dbf6bc9a 100644
--- a/cps-rest/src/test/groovy/org/onap/cps/rest/exceptions/CpsRestExceptionHandlerSpec.groovy
+++ b/cps-rest/src/test/groovy/org/onap/cps/rest/exceptions/CpsRestExceptionHandlerSpec.groovy
@@ -22,6 +22,7 @@ package org.onap.cps.rest.exceptions
import groovy.json.JsonSlurper
import org.modelmapper.ModelMapper
import org.onap.cps.api.CpsAdminService
+import org.onap.cps.api.CpsDataService
import org.onap.cps.api.CpsModuleService
import org.onap.cps.spi.exceptions.AnchorAlreadyDefinedException
import org.onap.cps.spi.exceptions.CpsException
@@ -56,6 +57,9 @@ class CpsRestExceptionHandlerSpec extends Specification {
CpsModuleService mockCpsModuleService = Mock()
@SpringBean
+ CpsDataService mockCpsDataService = Mock()
+
+ @SpringBean
ModelMapper modelMapper = Mock()
@Autowired