diff options
author | Hanif Kukkalli <lte-ng@outlook.com> | 2021-02-23 12:26:39 +0100 |
---|---|---|
committer | Hanif Kukkalli <lte-ng@outlook.com> | 2021-02-26 11:23:28 +0000 |
commit | 83e318f8c7d3cacb24b2ef9b76162b0af12e817c (patch) | |
tree | 3a38e10ffcb878e6e61bdaeb2440d58b079467c5 /cps-nf-proxy-rest/src/main/java | |
parent | 85aebca0339f9e619fa3a9fd537dc986fc7aa03a (diff) |
Implement getDataNode(anchorName, xPath) in NF-Proxy
Added spring-boot-starter-validation instead of cps-ri.
Added test 'Data node without leaves and without children.' to MultipartFileUtilSpec groovy test
Created a method getNodeByCmHandleIdAndXpath(cmHandleId, cpsPath)
Added hardcoded value of NFS DataspaceName as: "NFP-Operation".
Issue-ID: CPS-172
Signed-off-by: Hanif Kukkalli <lte-ng@outlook.com>
Change-Id: Ie8086ede01a9c5069b1ee75864b04a0ee5e8a4f6
Diffstat (limited to 'cps-nf-proxy-rest/src/main/java')
-rw-r--r-- | cps-nf-proxy-rest/src/main/java/org/onap/cps/nfproxy/rest/controller/NfProxyController.java | 29 |
1 files changed, 22 insertions, 7 deletions
diff --git a/cps-nf-proxy-rest/src/main/java/org/onap/cps/nfproxy/rest/controller/NfProxyController.java b/cps-nf-proxy-rest/src/main/java/org/onap/cps/nfproxy/rest/controller/NfProxyController.java index 99451e69a2..494e7f6596 100644 --- a/cps-nf-proxy-rest/src/main/java/org/onap/cps/nfproxy/rest/controller/NfProxyController.java +++ b/cps-nf-proxy-rest/src/main/java/org/onap/cps/nfproxy/rest/controller/NfProxyController.java @@ -2,6 +2,8 @@ * ============LICENSE_START======================================================= * Copyright (C) 2021 Pantheon.tech * ================================================================================ + * Modification Copyright (C) 2021 highstreet technologies GmbH + * ================================================================================ * 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 @@ -19,24 +21,37 @@ package org.onap.cps.nfproxy.rest.controller; +import javax.validation.Valid; +import org.onap.cps.nfproxy.api.NfProxyDataService; import org.onap.cps.nfproxy.rest.api.NfProxyApi; -import org.onap.cps.spi.exceptions.CpsException; +import org.onap.cps.spi.FetchDescendantsOption; +import org.onap.cps.spi.model.DataNode; +import org.onap.cps.utils.DataMapUtils; +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; + @RestController @RequestMapping("${rest.api.xnf-base-path}") public class NfProxyController implements NfProxyApi { - @Override - public ResponseEntity<Object> helloWorld() { - return new ResponseEntity<>("Hello World!", HttpStatus.OK); - } + private static final String XPATH_ROOT = "/"; + + @Autowired + private NfProxyDataService nfProxyDataService; @Override - public ResponseEntity<Object> helloError() { - throw new CpsException("Example error Message", "Example error description"); + public ResponseEntity<Object> getNodeByCmHandleAndXpath(final String cmHandle, @Valid final String xpath, + @Valid final Boolean includeDescendants) { + if (XPATH_ROOT.equals(xpath)) { + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + final FetchDescendantsOption fetchDescendantsOption = Boolean.TRUE.equals(includeDescendants) + ? FetchDescendantsOption.INCLUDE_ALL_DESCENDANTS : FetchDescendantsOption.OMIT_DESCENDANTS; + final DataNode dataNode = nfProxyDataService.getDataNode(cmHandle, xpath, fetchDescendantsOption); + return new ResponseEntity<>(DataMapUtils.toDataMap(dataNode), HttpStatus.OK); } } |