diff options
author | niamhcore <niamh.core@est.tech> | 2021-01-28 16:11:52 +0000 |
---|---|---|
committer | niamhcore <niamh.core@est.tech> | 2021-02-01 14:18:35 +0000 |
commit | 74753d923b77d87b17e8221ecc86a084446648b7 (patch) | |
tree | 19d933504e9a9040da75d478b2298b8413283c42 /cps-rest | |
parent | 3cf66a1b795042ade82a8c9cb2b4df978bc6485d (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')
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 c33cf168e2..dcdb99adcb 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 2ecbd4f544..07f555383a 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 540d6224aa..c1c7c5dcdf 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 edc484b14a..7dbf6bc9a1 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 |