Improve test coverage
[sdc.git] / catalog-be / src / main / java / org / openecomp / sdc / be / components / impl / PolicyTypeBusinessLogic.java
index 2213719..b8541f1 100644 (file)
 
 package org.openecomp.sdc.be.components.impl;
 
-import fj.data.Either;
 import org.apache.commons.lang.StringUtils;
+import org.openecomp.sdc.be.components.impl.exceptions.ByActionStatusComponentException;
 import org.openecomp.sdc.be.components.validation.UserValidations;
 import org.openecomp.sdc.be.config.ConfigurationManager;
+import org.openecomp.sdc.be.dao.api.ActionStatus;
 import org.openecomp.sdc.be.dao.jsongraph.JanusGraphDao;
 import org.openecomp.sdc.be.impl.ComponentsUtils;
 import org.openecomp.sdc.be.model.PolicyTypeDefinition;
 import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus;
 import org.openecomp.sdc.be.model.operations.impl.PolicyTypeOperation;
-import org.openecomp.sdc.common.log.wrappers.Logger;
-import org.openecomp.sdc.exception.ResponseFormat;
 import org.springframework.stereotype.Component;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -43,7 +42,6 @@ import static java.util.Collections.emptySet;
 @Component
 public class PolicyTypeBusinessLogic {
 
-    private static final Logger log = Logger.getLogger(PolicyTypeBusinessLogic.class);
     private PolicyTypeOperation policyTypeOperation;
     private JanusGraphDao janusGraphDao;
     private ComponentsUtils componentsUtils;
@@ -59,10 +57,16 @@ public class PolicyTypeBusinessLogic {
     @Transactional
     public List<PolicyTypeDefinition> getAllPolicyTypes(String userId, String internalComponentType) {
         Set<String> excludedPolicyTypes = getExcludedPolicyTypes(internalComponentType);
-        userValidations.validateUserExists(userId, "get policy types", true);
+        userValidations.validateUserExists(userId);
         return getPolicyTypes(excludedPolicyTypes);
     }
 
+    public PolicyTypeDefinition getLatestPolicyTypeByType(String policyTypeName) {
+        return policyTypeOperation.getLatestPolicyTypeByType(policyTypeName)
+                       .left()
+                       .on(e -> failOnPolicyType(e, policyTypeName));
+    }
+
     public Set<String> getExcludedPolicyTypes(String internalComponentType) {
         if (StringUtils.isEmpty(internalComponentType)) {
             return emptySet();
@@ -76,8 +80,12 @@ public class PolicyTypeBusinessLogic {
         return policyTypeOperation.getAllPolicyTypes(excludedTypes);
     }
 
-    private Either<List<PolicyTypeDefinition>, ResponseFormat> convertToResponseFormatOrNotFoundErrorToEmptyList(StorageOperationStatus err) {
-        log.debug("error when trying to fetch policy types: {}", err);
-        return componentsUtils.convertToResponseFormatOrNotFoundErrorToEmptyList(err);
+    private PolicyTypeDefinition failOnPolicyType(StorageOperationStatus status, String policyType) {
+        janusGraphDao.rollback();
+        if (status == StorageOperationStatus.INVALID_ID) {
+            throw new ByActionStatusComponentException(ActionStatus.POLICY_TYPE_IS_INVALID, policyType);
+        } else {
+            throw new ByActionStatusComponentException(ActionStatus.GENERAL_ERROR);
+        }
     }
 }