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;
@Component
public class PolicyTypeBusinessLogic {
- private static final Logger log = Logger.getLogger(PolicyTypeBusinessLogic.class);
private PolicyTypeOperation policyTypeOperation;
private JanusGraphDao janusGraphDao;
private ComponentsUtils componentsUtils;
@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();
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);
+ }
}
}