diff options
Diffstat (limited to 'src/main/java/org/onap/nbi/apis/serviceinventory/ServiceInventoryService.java')
-rw-r--r-- | src/main/java/org/onap/nbi/apis/serviceinventory/ServiceInventoryService.java | 78 |
1 files changed, 43 insertions, 35 deletions
diff --git a/src/main/java/org/onap/nbi/apis/serviceinventory/ServiceInventoryService.java b/src/main/java/org/onap/nbi/apis/serviceinventory/ServiceInventoryService.java index 3208de4..df7ab74 100644 --- a/src/main/java/org/onap/nbi/apis/serviceinventory/ServiceInventoryService.java +++ b/src/main/java/org/onap/nbi/apis/serviceinventory/ServiceInventoryService.java @@ -1,30 +1,27 @@ /** - * Copyright (c) 2018 Orange + * Copyright (c) 2018 Orange * - * 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 + * 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 + * 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. + * 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. */ package org.onap.nbi.apis.serviceinventory; import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.List; +import org.apache.commons.collections.CollectionUtils; import org.onap.nbi.apis.serviceinventory.jolt.FindServiceInventoryJsonTransformer; import org.onap.nbi.apis.serviceinventory.jolt.GetServiceInventoryJsonTransformer; import org.onap.nbi.exceptions.BackendFunctionalException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.stereotype.Service; -import org.springframework.util.CollectionUtils; import org.springframework.util.MultiValueMap; import org.springframework.util.StringUtils; @@ -51,7 +48,7 @@ public class ServiceInventoryService { if (StringUtils.isEmpty(serviceSpecId) && StringUtils.isEmpty(serviceSpecName)) { throw new BackendFunctionalException(HttpStatus.NOT_FOUND, - "serviceSpecName or serviceSpecId must be provided"); + "serviceSpecName or serviceSpecId must be provided"); } String customerId = getCustomerId(clientId); @@ -61,7 +58,7 @@ public class ServiceInventoryService { if (serviceResponse != null) { addVnfsToResponse(serviceResponse); LinkedHashMap serviceInventoryResponse = - (LinkedHashMap) getServiceInventoryJsonTransformer.transform(serviceResponse); + (LinkedHashMap) getServiceInventoryJsonTransformer.transform(serviceResponse); addRelatedPartyId(customerId, serviceInventoryResponse); return serviceInventoryResponse; } else { @@ -103,9 +100,9 @@ public class ServiceInventoryService { List<LinkedHashMap> vnfs = new ArrayList<>(); LinkedHashMap relationShip = (LinkedHashMap) serviceResponse.get("relationship-list"); - if(relationShip!=null) { + if (relationShip != null) { List<LinkedHashMap> relationsList = (List<LinkedHashMap>) relationShip.get("relationship"); - if(relationsList!=null) { + if (relationsList != null) { for (LinkedHashMap relation : relationsList) { String relatedLink = (String) relation.get("related-link"); LinkedHashMap vnf = aaiClient.getVNF(relatedLink); @@ -128,41 +125,52 @@ public class ServiceInventoryService { String serviceName; List<LinkedHashMap> serviceInstances = new ArrayList<>(); if (StringUtils.isEmpty(serviceSpecId) && StringUtils.isEmpty(serviceSpecName)) { - LinkedHashMap servicesInAaiForCustomer = aaiClient.getServicesInAaiForCustomer(customerId); - List<LinkedHashMap> servicesInAAI = - (List<LinkedHashMap>) servicesInAaiForCustomer.get("service-subscription"); - for (LinkedHashMap service : servicesInAAI) { - String serviceType = (String) service.get("service-type"); - buildServiceInstances(serviceInstances, customerId, serviceType); - } + handleFindWithNoServiceParam(customerId, serviceInstances); } else { serviceName = getServiceName(serviceSpecName, serviceSpecId); buildServiceInstances(serviceInstances, customerId, serviceName); } - - List<LinkedHashMap> serviceInventoryResponse = - (List<LinkedHashMap>) findServiceInventoryJsonTransformer.transform(serviceInstances); - for (LinkedHashMap serviceInventory : serviceInventoryResponse) { - LinkedHashMap party = (LinkedHashMap) serviceInventory.get("relatedParty"); - party.put("id", customerId); + List<LinkedHashMap> serviceInventoryResponse = new ArrayList<>(); + if(CollectionUtils.isNotEmpty(serviceInstances)){ + serviceInventoryResponse = + findServiceInventoryJsonTransformer.transform(serviceInstances); + for (LinkedHashMap serviceInventory : serviceInventoryResponse) { + LinkedHashMap party = (LinkedHashMap) serviceInventory.get("relatedParty"); + party.put("id", customerId); + } } return serviceInventoryResponse; + + } + + private void handleFindWithNoServiceParam(String customerId, List<LinkedHashMap> serviceInstances) { + LinkedHashMap servicesInAaiForCustomer = aaiClient.getServicesInAaiForCustomer(customerId); + if(servicesInAaiForCustomer!=null){ + List<LinkedHashMap> servicesInAAI = + (List<LinkedHashMap>) servicesInAaiForCustomer.get("service-subscription"); + for (LinkedHashMap service : servicesInAAI) { + String serviceType = (String) service.get("service-type"); + buildServiceInstances(serviceInstances, customerId, serviceType); + } + } } private void buildServiceInstances(List<LinkedHashMap> serviceInstances, String customerId, String serviceType) { LinkedHashMap serviceInstancesInAaiForCustomer = - aaiClient.getServiceInstancesInAaiForCustomer(customerId, serviceType); - List<LinkedHashMap> serviceInstancesForServiceType = + aaiClient.getServiceInstancesInAaiForCustomer(customerId, serviceType); + if (serviceInstancesInAaiForCustomer != null) { + List<LinkedHashMap> serviceInstancesForServiceType = (List<LinkedHashMap>) serviceInstancesInAaiForCustomer.get("service-instance"); - if(!CollectionUtils.isEmpty(serviceInstancesForServiceType)){ - // add service type for jolt - for (LinkedHashMap serviceInstanceForServiceType : serviceInstancesForServiceType) { - serviceInstanceForServiceType.put("service-type", serviceType); + if (!CollectionUtils.isEmpty(serviceInstancesForServiceType)) { + // add service type for jolt + for (LinkedHashMap serviceInstanceForServiceType : serviceInstancesForServiceType) { + serviceInstanceForServiceType.put("service-type", serviceType); + } + serviceInstances.addAll(serviceInstancesForServiceType); } - serviceInstances.addAll(serviceInstancesForServiceType); } |