diff options
author | 2019-08-20 10:46:55 +0000 | |
---|---|---|
committer | 2019-08-20 10:47:10 +0000 | |
commit | 241cd37ac8cf7a12bb0b160e8881d1543726b86b (patch) | |
tree | e7cf639874ffa5bb2c419799da9bbc10942535b5 /plans/so/integration-etsi-testing/so-simulators/aai-simulator/src/main/java/org/onap/so/aaisimulator | |
parent | b59cd347eae4b6f602debf818e06f8a731ed9092 (diff) |
Adding line of business relationship endpoint
Change-Id: I7e03a8faf50c0712e67c2f70819abbd2db0e25a6
Issue-ID: SO-2219
Signed-off-by: waqas.ikram <waqas.ikram@est.tech>
Diffstat (limited to 'plans/so/integration-etsi-testing/so-simulators/aai-simulator/src/main/java/org/onap/so/aaisimulator')
5 files changed, 72 insertions, 2 deletions
diff --git a/plans/so/integration-etsi-testing/so-simulators/aai-simulator/src/main/java/org/onap/so/aaisimulator/controller/LinesOfBusinessController.java b/plans/so/integration-etsi-testing/so-simulators/aai-simulator/src/main/java/org/onap/so/aaisimulator/controller/LinesOfBusinessController.java index 537760c8..173b1099 100644 --- a/plans/so/integration-etsi-testing/so-simulators/aai-simulator/src/main/java/org/onap/so/aaisimulator/controller/LinesOfBusinessController.java +++ b/plans/so/integration-etsi-testing/so-simulators/aai-simulator/src/main/java/org/onap/so/aaisimulator/controller/LinesOfBusinessController.java @@ -20,12 +20,14 @@ package org.onap.so.aaisimulator.controller; import static org.onap.so.aaisimulator.utils.Constants.LINES_OF_BUSINESS_URL; +import static org.onap.so.aaisimulator.utils.Constants.LINE_OF_BUSINESS; import static org.onap.so.aaisimulator.utils.RequestErrorResponseUtils.getRequestErrorResponseEntity; import static org.onap.so.aaisimulator.utils.RequestErrorResponseUtils.getResourceVersion; import java.util.Optional; import javax.servlet.http.HttpServletRequest; import javax.ws.rs.core.MediaType; import org.onap.aai.domain.yang.LineOfBusiness; +import org.onap.aai.domain.yang.Relationship; import org.onap.so.aaisimulator.service.providers.LinesOfBusinessCacheServiceProvider; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -82,7 +84,30 @@ public class LinesOfBusinessController { return ResponseEntity.ok(platform); } LOGGER.error("Unable to find LineOfBusiness in cahce using {}", lineOfBusinessName); - return getRequestErrorResponseEntity(request); + return getRequestErrorResponseEntity(request, LINE_OF_BUSINESS); + } + + @PutMapping(value = "/{line-of-business-name}/relationship-list/relationship", + consumes = {MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML}, + produces = {MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML}) + public ResponseEntity<?> putRelationShip(@PathVariable("line-of-business-name") final String lineOfBusinessName, + @RequestBody final Relationship relationship, final HttpServletRequest request) { + LOGGER.info("Will add {} relationship to : {} ...", relationship.getRelatedTo()); + + final Optional<Relationship> optional = + cacheServiceProvider.addRelationShip(lineOfBusinessName, relationship, request.getRequestURI()); + + if (optional.isPresent()) { + final Relationship resultantRelationship = optional.get(); + LOGGER.info("Relationship add, sending resultant relationship: {} in response ...", resultantRelationship); + return ResponseEntity.accepted().body(resultantRelationship); + } + + LOGGER.error("Couldn't add {} relationship for 'line-of-business-name': {} ...", relationship.getRelatedTo(), + lineOfBusinessName); + + return getRequestErrorResponseEntity(request, LINE_OF_BUSINESS); + } } diff --git a/plans/so/integration-etsi-testing/so-simulators/aai-simulator/src/main/java/org/onap/so/aaisimulator/controller/PlatformController.java b/plans/so/integration-etsi-testing/so-simulators/aai-simulator/src/main/java/org/onap/so/aaisimulator/controller/PlatformController.java index 5c585189..d0019727 100644 --- a/plans/so/integration-etsi-testing/so-simulators/aai-simulator/src/main/java/org/onap/so/aaisimulator/controller/PlatformController.java +++ b/plans/so/integration-etsi-testing/so-simulators/aai-simulator/src/main/java/org/onap/so/aaisimulator/controller/PlatformController.java @@ -87,7 +87,7 @@ public class PlatformController { @PutMapping(value = "/{platform-name}/relationship-list/relationship", consumes = {MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML}, produces = {MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML}) - public ResponseEntity<?> putSericeInstanceRelationShip(@PathVariable("platform-name") final String platformName, + public ResponseEntity<?> putRelationShip(@PathVariable("platform-name") final String platformName, @RequestBody final Relationship relationship, final HttpServletRequest request) { LOGGER.info("Will add {} relationship to : {} ...", relationship.getRelatedTo()); diff --git a/plans/so/integration-etsi-testing/so-simulators/aai-simulator/src/main/java/org/onap/so/aaisimulator/service/providers/LinesOfBusinessCacheServiceProvider.java b/plans/so/integration-etsi-testing/so-simulators/aai-simulator/src/main/java/org/onap/so/aaisimulator/service/providers/LinesOfBusinessCacheServiceProvider.java index d4eb634c..dbf5490f 100644 --- a/plans/so/integration-etsi-testing/so-simulators/aai-simulator/src/main/java/org/onap/so/aaisimulator/service/providers/LinesOfBusinessCacheServiceProvider.java +++ b/plans/so/integration-etsi-testing/so-simulators/aai-simulator/src/main/java/org/onap/so/aaisimulator/service/providers/LinesOfBusinessCacheServiceProvider.java @@ -21,6 +21,7 @@ package org.onap.so.aaisimulator.service.providers; import java.util.Optional; import org.onap.aai.domain.yang.LineOfBusiness; +import org.onap.aai.domain.yang.Relationship; /** * @author Waqas Ikram (waqas.ikram@est.tech) @@ -32,5 +33,8 @@ public interface LinesOfBusinessCacheServiceProvider extends Clearable { Optional<LineOfBusiness> getLineOfBusiness(final String lineOfBusinessName); + Optional<Relationship> addRelationShip(final String lineOfBusinessName, final Relationship relationship, + final String requestURI); + } diff --git a/plans/so/integration-etsi-testing/so-simulators/aai-simulator/src/main/java/org/onap/so/aaisimulator/service/providers/LinesOfBusinessCacheServiceProviderImpl.java b/plans/so/integration-etsi-testing/so-simulators/aai-simulator/src/main/java/org/onap/so/aaisimulator/service/providers/LinesOfBusinessCacheServiceProviderImpl.java index e2255760..07c46472 100644 --- a/plans/so/integration-etsi-testing/so-simulators/aai-simulator/src/main/java/org/onap/so/aaisimulator/service/providers/LinesOfBusinessCacheServiceProviderImpl.java +++ b/plans/so/integration-etsi-testing/so-simulators/aai-simulator/src/main/java/org/onap/so/aaisimulator/service/providers/LinesOfBusinessCacheServiceProviderImpl.java @@ -20,8 +20,14 @@ package org.onap.so.aaisimulator.service.providers; import static org.onap.so.aaisimulator.utils.CacheName.LINES_OF_BUSINESS_CACHE; +import static org.onap.so.aaisimulator.utils.Constants.LINE_OF_BUSINESS; +import static org.onap.so.aaisimulator.utils.Constants.LINE_OF_BUSINESS_LINE_OF_BUSINESS_NAME; +import static org.onap.so.aaisimulator.utils.Constants.USES; import java.util.Optional; import org.onap.aai.domain.yang.LineOfBusiness; +import org.onap.aai.domain.yang.Relationship; +import org.onap.aai.domain.yang.RelationshipData; +import org.onap.aai.domain.yang.RelationshipList; import org.onap.so.simulator.cache.provider.AbstractCacheServiceProvider; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -66,6 +72,37 @@ public class LinesOfBusinessCacheServiceProviderImpl extends AbstractCacheServic } @Override + public Optional<Relationship> addRelationShip(final String lineOfBusinessName, final Relationship relationship, + final String requestUri) { + final Optional<LineOfBusiness> optional = getLineOfBusiness(lineOfBusinessName); + if (optional.isPresent()) { + final LineOfBusiness lineOfBusiness = optional.get(); + RelationshipList relationshipList = lineOfBusiness.getRelationshipList(); + if (relationshipList == null) { + relationshipList = new RelationshipList(); + lineOfBusiness.setRelationshipList(relationshipList); + } + relationshipList.getRelationship().add(relationship); + + LOGGER.info("Successfully added relation to LineOfBusiness with name: {}", lineOfBusinessName); + final Relationship resultantRelationship = new Relationship(); + resultantRelationship.setRelatedTo(LINE_OF_BUSINESS); + resultantRelationship.setRelationshipLabel(USES); + resultantRelationship.setRelatedLink(requestUri); + + final RelationshipData relationshipData = new RelationshipData(); + relationshipData.setRelationshipKey(LINE_OF_BUSINESS_LINE_OF_BUSINESS_NAME); + relationshipData.setRelationshipValue(lineOfBusiness.getLineOfBusinessName()); + resultantRelationship.getRelationshipData().add(relationshipData); + + return Optional.of(resultantRelationship); + + } + LOGGER.error("Unable to find LineOfBusiness using name: {} ...", lineOfBusinessName); + return Optional.empty(); + } + + @Override public void clearAll() { clearCahce(LINES_OF_BUSINESS_CACHE.getName()); } diff --git a/plans/so/integration-etsi-testing/so-simulators/aai-simulator/src/main/java/org/onap/so/aaisimulator/utils/Constants.java b/plans/so/integration-etsi-testing/so-simulators/aai-simulator/src/main/java/org/onap/so/aaisimulator/utils/Constants.java index daaef336..29b3af99 100644 --- a/plans/so/integration-etsi-testing/so-simulators/aai-simulator/src/main/java/org/onap/so/aaisimulator/utils/Constants.java +++ b/plans/so/integration-etsi-testing/so-simulators/aai-simulator/src/main/java/org/onap/so/aaisimulator/utils/Constants.java @@ -81,6 +81,10 @@ public class Constants { public static final String PLATFORM_PLATFORM_NAME = "platform.platform-name"; + public static final String LINE_OF_BUSINESS_LINE_OF_BUSINESS_NAME = "line-of-business.line-of-business-name"; + + public static final String LINE_OF_BUSINESS = "line-of-business"; + public static final String SERVICE_SUBSCRIPTION = "service-subscription"; public static final String CUSTOMER_TYPE = "Customer"; |