summaryrefslogtreecommitdiffstats
path: root/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/GroupTypeBusinessLogic.java
diff options
context:
space:
mode:
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.java52
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);
+ }
}
}