diff options
Diffstat (limited to 'catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/GroupTypeBusinessLogic.java')
-rw-r--r-- | catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/GroupTypeBusinessLogic.java | 52 |
1 files changed, 38 insertions, 14 deletions
diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/GroupTypeBusinessLogic.java b/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/GroupTypeBusinessLogic.java index d852ac3c3c..99c4e9e181 100644 --- a/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/GroupTypeBusinessLogic.java +++ b/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/GroupTypeBusinessLogic.java @@ -1,46 +1,70 @@ package org.openecomp.sdc.be.components.impl; -import java.util.List; -import java.util.Set; - +import org.apache.commons.lang3.StringUtils; import org.openecomp.sdc.be.components.impl.exceptions.ComponentException; 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.TitanDao; +import org.openecomp.sdc.be.impl.ComponentsUtils; import org.openecomp.sdc.be.model.GroupTypeDefinition; -import org.openecomp.sdc.be.model.User; +import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus; import org.openecomp.sdc.be.model.operations.impl.GroupTypeOperation; -import org.openecomp.sdc.exception.ResponseFormat; import org.springframework.stereotype.Component; -@Component +import java.util.List; +import java.util.Map; +import java.util.Set; + +import static java.util.Collections.emptySet; + +@Component("groupTypeBusinessLogic") public class GroupTypeBusinessLogic { private final GroupTypeOperation groupTypeOperation; private final TitanDao titanDao; private final UserValidations userValidations; + private final ComponentsUtils componentsUtils; - public GroupTypeBusinessLogic(GroupTypeOperation groupTypeOperation, TitanDao titanDao, UserValidations userValidations) { + public GroupTypeBusinessLogic(GroupTypeOperation groupTypeOperation, TitanDao titanDao, UserValidations userValidations, ComponentsUtils componentsUtils) { this.groupTypeOperation = groupTypeOperation; this.titanDao = titanDao; this.userValidations = userValidations; + this.componentsUtils = componentsUtils; } public List<GroupTypeDefinition> getAllGroupTypes(String userId, String internalComponentType) { try { - userValidations.validateUserExists(userId, "get group types", true) - .left() - .on(this::onUserError); - - Set<String> excludeGroupTypes = ConfigurationManager.getConfigurationManager().getConfiguration().getExcludedGroupTypesMapping().get(internalComponentType); + userValidations.validateUserExists(userId, "get group types", true); + Set<String> excludeGroupTypes = getExcludedGroupTypes(internalComponentType); return groupTypeOperation.getAllGroupTypes(excludeGroupTypes); } finally { titanDao.commit(); } } - private User onUserError(ResponseFormat responseFormat) { - throw new ComponentException(responseFormat); + public GroupTypeDefinition getLatestGroupTypeByType(String groupTypeName) { + return groupTypeOperation.getLatestGroupTypeByType(groupTypeName, true) + .left() + .on(e -> failOnGetGroupType(e, groupTypeName)); + } + + public Set<String> getExcludedGroupTypes(String internalComponentType) { + if (StringUtils.isEmpty(internalComponentType)) { + return emptySet(); + } + Map<String, Set<String>> excludedGroupTypesMapping = ConfigurationManager.getConfigurationManager().getConfiguration().getExcludedGroupTypesMapping(); + Set<String> excludedTypes = excludedGroupTypesMapping.get(internalComponentType); + return excludedTypes == null ? emptySet() : excludedTypes; + } + + private GroupTypeDefinition failOnGetGroupType(StorageOperationStatus status, String groupType) { + titanDao.rollback(); + if (status == StorageOperationStatus.NOT_FOUND) { + throw new ComponentException(ActionStatus.GROUP_TYPE_IS_INVALID, groupType); + } else { + throw new ComponentException(ActionStatus.GENERAL_ERROR); + } } } |