diff options
author | romaingimbert <romain.gimbert@orange.com> | 2018-08-10 14:29:31 +0200 |
---|---|---|
committer | romaingimbert <romain.gimbert@orange.com> | 2018-08-10 14:29:31 +0200 |
commit | 8bbefa2ea43f8d2beedeb347bb831b82009417a3 (patch) | |
tree | c613f7de2e74343cdf9a5ff12ab4f751b4f70230 /src/main/java/org/onap/nbi/apis/serviceorder/workflow/CheckOrderConsistenceManager.java | |
parent | 9fb6d48ba882de74067184208f0ace896f852577 (diff) |
Help NBI user to get information
-add orderMessage to order and orderItem
-add tests
Change-Id: Ibb9e54ec03f8b8f736390501fc16c9b96c0f987a
Issue-ID: EXTAPI-116
Signed-off-by: romaingimbert <romain.gimbert@orange.com>
Diffstat (limited to 'src/main/java/org/onap/nbi/apis/serviceorder/workflow/CheckOrderConsistenceManager.java')
-rw-r--r-- | src/main/java/org/onap/nbi/apis/serviceorder/workflow/CheckOrderConsistenceManager.java | 69 |
1 files changed, 36 insertions, 33 deletions
diff --git a/src/main/java/org/onap/nbi/apis/serviceorder/workflow/CheckOrderConsistenceManager.java b/src/main/java/org/onap/nbi/apis/serviceorder/workflow/CheckOrderConsistenceManager.java index 7ee3a0e..e868bc6 100644 --- a/src/main/java/org/onap/nbi/apis/serviceorder/workflow/CheckOrderConsistenceManager.java +++ b/src/main/java/org/onap/nbi/apis/serviceorder/workflow/CheckOrderConsistenceManager.java @@ -8,7 +8,7 @@ */ package org.onap.nbi.apis.serviceorder.workflow; -import java.util.LinkedHashMap; +import java.util.Map; import org.onap.nbi.apis.serviceorder.MultiClient; import org.onap.nbi.apis.serviceorder.model.RelatedParty; import org.onap.nbi.apis.serviceorder.model.ServiceOrder; @@ -21,8 +21,6 @@ import org.onap.nbi.apis.serviceorder.service.ServiceOrderService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; @@ -36,6 +34,7 @@ public class CheckOrderConsistenceManager { @Autowired private ServiceOrderService serviceOrderService; + private static final Logger LOGGER = LoggerFactory.getLogger(CheckOrderConsistenceManager.class); public ServiceOrderInfo checkServiceOrder(ServiceOrder serviceOrder) { @@ -46,26 +45,29 @@ public class CheckOrderConsistenceManager { for (ServiceOrderItem serviceOrderItem : serviceOrder.getOrderItem()) { ServiceOrderItemInfo serviceOrderItemInfo = new ServiceOrderItemInfo(); - handleServiceFromCatalog(serviceOrderItem, serviceOrderItemInfo); + handleServiceFromCatalog(serviceOrderItem,serviceOrder, serviceOrderItemInfo); if (!existServiceInCatalog(serviceOrderItemInfo)) { serviceOrderInfo.setIsServiceOrderRejected(true); - serviceOrderService.updateOrderItemState(serviceOrder,serviceOrderItem,StateType.REJECTED); + serviceOrderService.updateOrderItemState(serviceOrder, serviceOrderItem, StateType.REJECTED); LOGGER.warn( "service order item {} of service order {} rejected cause no service catalog found for id {}", serviceOrderItem.getId(), serviceOrder.getId(), serviceOrderItem.getService().getServiceSpecification().getId()); + serviceOrderService.addOrderItemMessage(serviceOrder,serviceOrderItem, "102"); } else { switch (serviceOrderItem.getAction()) { case ADD: - handleServiceOrderItemInAdd(serviceOrderInfo,serviceOrder, serviceOrderItem, serviceOrderItemInfo); + handleServiceOrderItemInAdd(serviceOrderInfo, serviceOrder, serviceOrderItem, + serviceOrderItemInfo); break; case MODIFY: case DELETE: - handleServiceOrderItemInChange(serviceOrderInfo,serviceOrder, serviceOrderItem, serviceOrderItemInfo); + handleServiceOrderItemInChange(serviceOrderInfo, serviceOrder, serviceOrderItem, + serviceOrderItemInfo); break; case NOCHANGE: serviceOrderInfo.setAllItemsInAdd(false); - serviceOrderService.updateOrderItemState(serviceOrder,serviceOrderItem,StateType.COMPLETED); + serviceOrderService.updateOrderItemState(serviceOrder, serviceOrderItem, StateType.COMPLETED); nbItemsCompleted++; break; } @@ -87,61 +89,67 @@ public class CheckOrderConsistenceManager { ServiceOrder serviceOrder, ServiceOrderItem serviceOrderItem, ServiceOrderItemInfo serviceOrderItemInfo) { serviceOrderInfo.setAllItemsInAdd(false); - if (shouldAcceptServiceOrderItemToChange(serviceOrderInfo, serviceOrderItem, + if (shouldAcceptServiceOrderItemToChange(serviceOrderInfo, serviceOrder, serviceOrderItem, serviceOrderItemInfo)) { serviceOrderInfo.addServiceOrderItemInfos(serviceOrderItem.getId(), serviceOrderItemInfo); } else { serviceOrderInfo.setIsServiceOrderRejected(true); - serviceOrderService.updateOrderItemState(serviceOrder,serviceOrderItem,StateType.REJECTED); + serviceOrderService.updateOrderItemState(serviceOrder, serviceOrderItem, StateType.REJECTED); } } private void handleServiceOrderItemInAdd(ServiceOrderInfo serviceOrderInfo, ServiceOrder serviceOrder, ServiceOrderItem serviceOrderItem, ServiceOrderItemInfo serviceOrderItemInfo) { - if (shouldAcceptServiceOrderItemToAdd(serviceOrderItem, serviceOrderInfo.getServiceOrderId())) { + if (shouldAcceptServiceOrderItemToAdd(serviceOrderItem, serviceOrder, serviceOrderInfo.getServiceOrderId())) { serviceOrderInfo.addServiceOrderItemInfos(serviceOrderItem.getId(), serviceOrderItemInfo); } else { serviceOrderInfo.setIsServiceOrderRejected(true); - serviceOrderService.updateOrderItemState(serviceOrder,serviceOrderItem,StateType.REJECTED); + serviceOrderService.updateOrderItemState(serviceOrder, serviceOrderItem, StateType.REJECTED); } } private boolean shouldAcceptServiceOrderItemToAdd(ServiceOrderItem serviceOrderItem, - String serviceOrderId) { + ServiceOrder serviceOrder, String serviceOrderId) { if (!StringUtils.isEmpty(serviceOrderItem.getService().getId())) { LOGGER .warn("serviceOrderItem {} for serviceorder {} rejected cause service.id must be empty in add action", serviceOrderItem.getId(), serviceOrderId); + serviceOrderService.addOrderItemMessage(serviceOrder,serviceOrderItem, "103"); return false; - } else if (!serviceOrderConsumerService.isTenantIdPresentInAAI()) { + } else if (!serviceOrderConsumerService.isTenantIdPresentInAAI(serviceOrder)) { LOGGER.warn("serviceOrderItem {} for serviceOrder {} rejected cause tenantId not found in AAI", serviceOrderItem.getId(), serviceOrderId); + serviceOrderService.addOrderItemMessage(serviceOrder,serviceOrderItem, "107"); + return false; } return true; } private boolean shouldAcceptServiceOrderItemToChange(ServiceOrderInfo serviceOrderInfo, - ServiceOrderItem serviceOrderItem, + ServiceOrder serviceOrder, ServiceOrderItem serviceOrderItem, ServiceOrderItemInfo serviceOrderItemInfo) { if (StringUtils.isEmpty(serviceOrderItem.getService().getId())) { LOGGER.warn( "serviceOrderItem {} for serviceOrder {} rejected cause service.id is mandatory in delete/change action", serviceOrderItem.getId(), serviceOrderInfo.getServiceOrderId()); + serviceOrderService.addOrderItemMessage(serviceOrder,serviceOrderItem, "101"); return false; - } else if (!isCustomerFromServiceOrderPresentInInventory(serviceOrderInfo)) { + } else if (!isCustomerFromServiceOrderPresentInInventory(serviceOrderInfo,serviceOrder)) { LOGGER .warn("serviceOrderItem {} for serviceOrder {} rejected cause customer not found in inventory", serviceOrderItem.getId(), serviceOrderInfo.getServiceOrderId()); + serviceOrderService.addOrderMessage(serviceOrder, "104"); return false; - } else if (!existServiceInInventory(serviceOrderItem, serviceOrderItemInfo, + } else if (!existServiceInInventory(serviceOrderItem, serviceOrder, serviceOrderItemInfo, serviceOrderInfo.getSubscriberInfo().getGlobalSubscriberId())) { LOGGER .warn("serviceOrderItem {} for serviceOrder {} rejected cause service id {} not found in inventory", serviceOrderItem.getId(), serviceOrderInfo.getServiceOrderId(), serviceOrderItem.getService().getId()); + serviceOrderService.addOrderItemMessage(serviceOrder,serviceOrderItem, "106"); return false; } return true; @@ -175,20 +183,22 @@ public class CheckOrderConsistenceManager { return null; } - private boolean isCustomerFromServiceOrderPresentInInventory(ServiceOrderInfo serviceOrderInfo) { + private boolean isCustomerFromServiceOrderPresentInInventory(ServiceOrderInfo serviceOrderInfo, + ServiceOrder serviceOrder) { if (serviceOrderInfo.isUseServiceOrderCustomer()) { return serviceOrderConsumerService - .isCustomerPresentInAAI(serviceOrderInfo.getSubscriberInfo().getGlobalSubscriberId()); + .isCustomerPresentInAAI(serviceOrderInfo.getSubscriberInfo().getGlobalSubscriberId(),serviceOrder); } return true; } private boolean existServiceInInventory(ServiceOrderItem serviceOrderItem, - ServiceOrderItemInfo serviceOrderItemInfo, String globalSubscriberId) { + ServiceOrder serviceOrder, ServiceOrderItemInfo serviceOrderItemInfo, + String globalSubscriberId) { String serviceName = (String) serviceOrderItemInfo.getCatalogResponse().get("name"); return serviceOrderConsumerService.doesServiceExistInServiceInventory( - serviceOrderItem.getService().getId(), serviceName, globalSubscriberId); + serviceOrderItem.getService().getId(), serviceName, globalSubscriberId,serviceOrder); } private boolean existServiceInCatalog(ServiceOrderItemInfo serviceOrderItemInfo) { @@ -196,18 +206,11 @@ public class CheckOrderConsistenceManager { } private void handleServiceFromCatalog(ServiceOrderItem serviceOrderItem, - ServiceOrderItemInfo serviceOrderItemInfo) { - ResponseEntity<Object> response = serviceOrderConsumerService - .getServiceCatalog(serviceOrderItem.getService().getServiceSpecification().getId()); - if (response != null && (response.getStatusCode().equals(HttpStatus.OK) - || response.getStatusCode().equals(HttpStatus.PARTIAL_CONTENT))) { - LinkedHashMap body = (LinkedHashMap) response.getBody(); - serviceOrderItemInfo.setCatalogResponse(body); - } else { - LOGGER.warn("unable to retrieve catalog information for service {}", - serviceOrderItem.getService().getServiceSpecification().getId()); - } - } + ServiceOrder serviceOrder, ServiceOrderItemInfo serviceOrderItemInfo) { + Map body = serviceOrderConsumerService + .getServiceCatalog(serviceOrderItem.getService().getServiceSpecification().getId(),serviceOrder,serviceOrderItem); + serviceOrderItemInfo.setCatalogResponse(body); + } } |