diff options
Diffstat (limited to 'catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/UserAdminOperation.java')
-rw-r--r-- | catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/UserAdminOperation.java | 681 |
1 files changed, 334 insertions, 347 deletions
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/UserAdminOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/UserAdminOperation.java index 9aa231497d..72c370ffe6 100644 --- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/UserAdminOperation.java +++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/UserAdminOperation.java @@ -20,12 +20,9 @@ package org.openecomp.sdc.be.model.operations.impl; -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - +import com.thinkaurelius.titan.core.TitanVertex; +import fj.data.Either; +import org.apache.commons.lang3.BooleanUtils; import org.apache.tinkerpop.gremlin.structure.Direction; import org.apache.tinkerpop.gremlin.structure.Edge; import org.apache.tinkerpop.gremlin.structure.Vertex; @@ -43,372 +40,362 @@ import org.openecomp.sdc.be.model.operations.api.IUserAdminOperation; import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus; import org.openecomp.sdc.be.resources.data.UserData; import org.openecomp.sdc.common.datastructure.Wrapper; +import org.openecomp.sdc.common.log.wrappers.Logger; import org.openecomp.sdc.common.util.MethodActivationStatusEnum; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Component; -import com.thinkaurelius.titan.core.TitanVertex; +import java.util.*; -import fj.data.Either; +import static org.apache.commons.collections.CollectionUtils.isEmpty; @Component("user-operation") public class UserAdminOperation implements IUserAdminOperation { - private TitanGenericDao titanGenericDao; - - public UserAdminOperation(@Qualifier("titan-generic-dao") TitanGenericDao titanGenericDao) { - super(); - this.titanGenericDao = titanGenericDao; - - } - - private static Logger log = LoggerFactory.getLogger(UserAdminOperation.class.getName()); - - @Override - public Either<User, ActionStatus> getUserData(String id, boolean inTransaction) { - return getUserData(id, true, inTransaction); - } - - private Either<User, ActionStatus> getUserData(String id, boolean isActive, boolean inTransaction) { - log.debug("getUserData - start"); - Wrapper<Either<User, ActionStatus>> resultWrapper = new Wrapper<>(); - Wrapper<UserData> userWrapper = new Wrapper<>(); - try { - validateUserExists(resultWrapper, userWrapper, id); - - if (resultWrapper.isEmpty()) { - validateUserData(resultWrapper, userWrapper.getInnerElement(), id); - - } - if (resultWrapper.isEmpty()) { - if (isActive) { - validateActiveUser(resultWrapper, userWrapper.getInnerElement()); - } else { - validateInActiveUser(resultWrapper, userWrapper.getInnerElement()); - } - } - - if (resultWrapper.isEmpty()) { - Either<User, ActionStatus> result = Either.left(convertToUser(userWrapper.getInnerElement())); - resultWrapper.setInnerElement(result); - } - - return resultWrapper.getInnerElement(); - } finally { - if (!inTransaction) { - titanGenericDao.commit(); - } - log.debug("getUserData - end"); - } - } - - private void validateInActiveUser(Wrapper<Either<User, ActionStatus>> resultWrapper, UserData userData) { - User user = convertToUser(userData); - if (user.getStatus() == UserStatusEnum.ACTIVE) { - Either<User, ActionStatus> result = Either.right(ActionStatus.USER_NOT_FOUND); - resultWrapper.setInnerElement(result); - } - } - - private void validateActiveUser(Wrapper<Either<User, ActionStatus>> resultWrapper, UserData userData) { - User user = convertToUser(userData); - if (user.getStatus() == UserStatusEnum.INACTIVE) { - Either<User, ActionStatus> result = Either.right(ActionStatus.USER_INACTIVE); - resultWrapper.setInnerElement(result); - } - } - - private void validateUserData(Wrapper<Either<User, ActionStatus>> resultWrapper, UserData userData, String id) { - if (userData == null) { - log.debug("Problem get User with userId {}. Reason - either.left().value() = null", id); - Either<User, ActionStatus> result = Either.right(ActionStatus.GENERAL_ERROR); - resultWrapper.setInnerElement(result); - } - } - - private void validateUserExists(Wrapper<Either<User, ActionStatus>> resultWrapper, Wrapper<UserData> userWrapper, String id) { - Either<User, ActionStatus> result; - if (id == null) { - log.info("User userId is empty"); - result = Either.right(ActionStatus.MISSING_INFORMATION); - resultWrapper.setInnerElement(result); - return; - } - id = id.toLowerCase(); - Either<UserData, TitanOperationStatus> either = titanGenericDao.getNode(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.User), id, UserData.class); - - if (either.isRight()) { - resultWrapper.setInnerElement(getUserNotFoundError(id, either.right().value())); - } else { - userWrapper.setInnerElement(either.left().value()); - } - } - - @Override - public Either<User, StorageOperationStatus> saveUserData(User user) { - - Either<UserData, TitanOperationStatus> result = null; - try { - UserData userData = convertToUserData(user); - result = titanGenericDao.createNode(userData, UserData.class); - if (result.isRight()) { - log.debug("Problem while saving User {}. Reason - {}",userData.toString(),result.right().value().name()); - return Either.right(StorageOperationStatus.GENERAL_ERROR); - } - log.debug("User {} saved successfully",userData.toString()); - return Either.left(convertToUser(result.left().value())); - - } finally { - - if (result == null || result.isRight()) { - log.error("saveUserData - Failed"); - titanGenericDao.rollback(); - } else { - log.debug("saveUserData - end"); - titanGenericDao.commit(); - } - } - } - - @Override - public Either<User, StorageOperationStatus> updateUserData(User user) { - Either<UserData, TitanOperationStatus> result = null; - try { - log.debug("updateUserData - start"); - UserData userData = convertToUserData(user); - result = titanGenericDao.updateNode(userData, UserData.class); - if (result.isRight()) { - log.debug("Problem while updating User {}. Reason - {}",userData.toString(),result.right().value().name()); - return Either.right(StorageOperationStatus.GENERAL_ERROR); - } - log.debug("User {} updated successfully",userData.toString()); - return Either.left(convertToUser(result.left().value())); - - } finally { - - if (result == null || result.isRight()) { - log.error("updateUserData - Failed"); - titanGenericDao.rollback(); - } else { - log.debug("updateUserData - end"); - titanGenericDao.commit(); - } - - } - } - - @Override - public Either<User, StorageOperationStatus> deActivateUser(User user) { - Either<User, StorageOperationStatus> result; - user.setStatus(UserStatusEnum.INACTIVE); - Either<User, StorageOperationStatus> status = updateUserData(user); - if (status.isRight()) { - result = Either.right(status.right().value()); - } else { - result = Either.left(user); - } - return result; - } - - @Override - public Either<User, ActionStatus> deleteUserData(String id) { - Either<User, ActionStatus> result; - Either<UserData, TitanOperationStatus> eitherGet = titanGenericDao.getNode(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.User), id, UserData.class); - if (eitherGet.isRight()) { - log.debug("Problem while retriving user with userId {}",id); - if (eitherGet.right().value() == TitanOperationStatus.NOT_FOUND) { - result = Either.right(ActionStatus.USER_NOT_FOUND); - } else { - result = Either.right(ActionStatus.GENERAL_ERROR); - } - - } else { - result = deleteUserLogic(eitherGet.left().value()); - } - return result; - } - - private Either<User, ActionStatus> deleteUserLogic(UserData userData) { - Wrapper<Either<User, ActionStatus>> resultWrapper = new Wrapper<>(); - try { - validateUserHasNoConnections(resultWrapper, userData); - - if (resultWrapper.isEmpty()) { - deleteUser(resultWrapper, userData); - } - - } finally { - titanGenericDao.commit(); - } - - return resultWrapper.getInnerElement(); - } - - private void deleteUser(Wrapper<Either<User, ActionStatus>> resultWrapper, UserData userData) { - Either<UserData, TitanOperationStatus> eitherDelete = titanGenericDao.deleteNode(userData, UserData.class); - if (eitherDelete.isRight()) { - log.debug("Problem while deleting User {}. Reason - {}",userData.toString(),eitherDelete.right().value().name()); - Either<User, ActionStatus> result = Either.right(ActionStatus.GENERAL_ERROR); - resultWrapper.setInnerElement(result); - } else { - log.debug("User {} deleted successfully",userData.toString()); - Either<User, ActionStatus> result = Either.left(convertToUser(eitherDelete.left().value())); - resultWrapper.setInnerElement(result); - } - } - - private void validateUserHasNoConnections(Wrapper<Either<User, ActionStatus>> resultWrapper, UserData userData) { - if (resultWrapper.isEmpty()) { - - Either<List<Edge>, TitanOperationStatus> edgesForNode = titanGenericDao.getEdgesForNode(userData, Direction.BOTH); - if (edgesForNode.isRight()) { - log.debug("Problem while deleting User {}. Reason - {}",userData.toString(),edgesForNode.right().value().name()); - Either<User, ActionStatus> result = Either.right(ActionStatus.GENERAL_ERROR); - resultWrapper.setInnerElement(result); - } else { - List<Edge> vertexEdges = edgesForNode.left().value(); - if (vertexEdges.size() > 0) { - Either<User, ActionStatus> result = Either.right(ActionStatus.USER_HAS_ACTIVE_ELEMENTS); - resultWrapper.setInnerElement(result); - } - } - } - } - - public Either<List<Edge>, StorageOperationStatus> getUserPendingTasksList(User user, Map<String, Object> properties) { - - UserData userData = convertToUserData(user); - - Either<TitanVertex, TitanOperationStatus> vertexUser = titanGenericDao.getVertexByProperty(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.User), user.getUserId()); - if (vertexUser.isRight()) { - log.debug("Problem while deleting User {}. Reason - {}",userData.toString(),vertexUser.right().value().name()); - return Either.right(StorageOperationStatus.GENERAL_ERROR); - } - - List<Edge> pandingTasks = new ArrayList<>(); - Either<List<Edge>, TitanOperationStatus> edges = titanGenericDao.getOutgoingEdgesByCriteria(vertexUser.left().value(), GraphEdgeLabels.STATE, properties); - - if (edges.isRight() || edges.left().value() == null) { - if (edges.right().value() == TitanOperationStatus.NOT_FOUND) { - return Either.left(pandingTasks); - } else { - log.debug("Problem while deleting User {}. Reason - ",userData.toString(),edges.right().value().name()); - return Either.right(StorageOperationStatus.GENERAL_ERROR); - } - } - - for (Edge edge : edges.left().value()) { - Vertex componentVertex = edge.inVertex(); - VertexProperty<Object> property = componentVertex.property(GraphPropertiesDictionary.IS_DELETED.getProperty()); - if (!property.isPresent()) { - pandingTasks.add(edge); - } else { - Boolean isDeletedValue = (java.lang.Boolean) property.value(); - if (isDeletedValue == null || isDeletedValue == false) { - pandingTasks.add(edge); - } - } - } - - if(log.isDebugEnabled()) { - for (Edge edge : pandingTasks) { - Object resourceUuid = edge.inVertex().property(GraphPropertyEnum.UNIQUE_ID.getProperty()).value(); - Object componentName = edge.inVertex().property(GraphPropertyEnum.NAME.getProperty()).value(); - Object componentState = edge.inVertex().property(GraphPropertyEnum.STATE.getProperty()).value(); - log.debug("The user userId = {} is working on the component name = {} uid = {} in state {}", user.getUserId(), componentName, resourceUuid, componentState); - } - } - - return Either.left(pandingTasks); - } - - @Override - public Either<List<User>, ActionStatus> getAllUsersWithRole(String role, String status) { - try { - List<User> result = new ArrayList<>(); - Map<String, Object> propertiesToMatch = new HashMap<>(); - if (role != null && !role.trim().isEmpty()) { - propertiesToMatch.put(GraphPropertiesDictionary.ROLE.getProperty(), role); - } - if (status != null && !status.isEmpty()) { - propertiesToMatch.put(GraphPropertiesDictionary.USER_STATUS.getProperty(), status); - } - - Either<List<UserData>, TitanOperationStatus> userNodes = titanGenericDao.getByCriteria(NodeTypeEnum.User, propertiesToMatch, UserData.class); - - titanGenericDao.commit(); - return convertToUsers(role, userNodes); - } finally { - titanGenericDao.commit(); - } - } - - private Either<List<User>, ActionStatus> convertToUsers(String role, Either<List<UserData>, TitanOperationStatus> userNodes) { - - if (userNodes.isRight()) { + private TitanGenericDao titanGenericDao; + + public UserAdminOperation(@Qualifier("titan-generic-dao") TitanGenericDao titanGenericDao) { + super(); + this.titanGenericDao = titanGenericDao; + + } + + private static final Logger log = Logger.getLogger(UserAdminOperation.class.getName()); + + @Override + public Either<User, ActionStatus> getUserData(String id, boolean inTransaction) { + return getUserData(id, true, inTransaction); + } + + private Either<User, ActionStatus> getUserData(String id, boolean isActive, boolean inTransaction) { + log.debug("getUserData - start"); + Wrapper<Either<User, ActionStatus>> resultWrapper = new Wrapper<>(); + Wrapper<UserData> userWrapper = new Wrapper<>(); + try { + validateUserExists(resultWrapper, userWrapper, id); + + if (resultWrapper.isEmpty()) { + validateUserData(resultWrapper, userWrapper.getInnerElement(), id); + + } + if (resultWrapper.isEmpty()) { + if (isActive) { + validateActiveUser(resultWrapper, userWrapper.getInnerElement()); + } else { + validateInActiveUser(resultWrapper, userWrapper.getInnerElement()); + } + } + + if (resultWrapper.isEmpty()) { + resultWrapper.setInnerElement(Either.left(convertToUser(userWrapper.getInnerElement()))); + } + + return resultWrapper.getInnerElement(); + } finally { + if (!inTransaction) { + titanGenericDao.commit(); + } + log.debug("getUserData - end"); + } + } + + private void validateInActiveUser(Wrapper<Either<User, ActionStatus>> resultWrapper, UserData userData) { + User user = convertToUser(userData); + if (user.getStatus() == UserStatusEnum.ACTIVE) { + resultWrapper.setInnerElement(Either.right(ActionStatus.USER_NOT_FOUND)); + } + } + + private void validateActiveUser(Wrapper<Either<User, ActionStatus>> resultWrapper, UserData userData) { + User user = convertToUser(userData); + if (user.getStatus() == UserStatusEnum.INACTIVE) { + resultWrapper.setInnerElement(Either.right(ActionStatus.USER_INACTIVE)); + } + } + + private void validateUserData(Wrapper<Either<User, ActionStatus>> resultWrapper, UserData userData, String id) { + if (userData == null) { + log.debug("Problem get User with userId {}. Reason - either.left().value() = null", id); + resultWrapper.setInnerElement(Either.right(ActionStatus.GENERAL_ERROR)); + } + } + + private void validateUserExists(Wrapper<Either<User, ActionStatus>> resultWrapper, Wrapper<UserData> userWrapper, String id) { + if (id == null) { + log.info("User userId is empty"); + resultWrapper.setInnerElement(Either.right(ActionStatus.MISSING_INFORMATION)); + return; + } + id = id.toLowerCase(); + Either<UserData, TitanOperationStatus> either = titanGenericDao.getNode(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.User), id, UserData.class); + + if (either.isRight()) { + resultWrapper.setInnerElement(getUserNotFoundError(id, either.right().value())); + } else { + userWrapper.setInnerElement(either.left().value()); + } + } + + @Override + public Either<User, StorageOperationStatus> saveUserData(User user) { + Either<UserData, TitanOperationStatus> result = null; + try { + UserData userData = convertToUserData(user); + result = titanGenericDao.createNode(userData, UserData.class); + if (result.isRight()) { + log.debug("Problem while saving User {}. Reason - {}", userData.getUserId(), result.right().value()); + return Either.right(StorageOperationStatus.GENERAL_ERROR); + } + log.debug("User {} saved successfully", userData.getUserId()); + return Either.left(convertToUser(result.left().value())); + + } finally { + + if (result == null || result.isRight()) { + log.error("saveUserData - Failed"); + titanGenericDao.rollback(); + } else { + log.debug("saveUserData - end"); + titanGenericDao.commit(); + } + } + } + + @Override + public Either<User, StorageOperationStatus> updateUserData(User user) { + Either<UserData, TitanOperationStatus> result = null; + try { + log.debug("updateUserData - start"); + UserData userData = convertToUserData(user); + result = titanGenericDao.updateNode(userData, UserData.class); + if (result.isRight()) { + if (log.isDebugEnabled()) { + log.debug("Problem while updating User {}. Reason - {}", userData.toString(), result.right().value()); + } + return Either.right(StorageOperationStatus.GENERAL_ERROR); + } + log.debug("User {} updated successfully",userData.getUserId()); + return Either.left(convertToUser(result.left().value())); + + } finally { + + if (result == null || result.isRight()) { + log.error("updateUserData - Failed"); + titanGenericDao.rollback(); + } else { + log.debug("updateUserData - end"); + titanGenericDao.commit(); + } + + } + } + + @Override + public Either<User, StorageOperationStatus> deActivateUser(User user) { + Either<User, StorageOperationStatus> result; + user.setStatus(UserStatusEnum.INACTIVE); + Either<User, StorageOperationStatus> status = updateUserData(user); + if (status.isRight()) { + result = Either.right(status.right().value()); + } else { + result = Either.left(user); + } + return result; + } + + @Override + public Either<User, ActionStatus> deleteUserData(String id) { + Either<User, ActionStatus> result; + Either<UserData, TitanOperationStatus> eitherGet = titanGenericDao.getNode(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.User), id, UserData.class); + if (eitherGet.isRight()) { + log.debug("Problem while retriving user with userId {}",id); + if (eitherGet.right().value() == TitanOperationStatus.NOT_FOUND) { + result = Either.right(ActionStatus.USER_NOT_FOUND); + } else { + result = Either.right(ActionStatus.GENERAL_ERROR); + } + } else { + result = deleteUserLogic(eitherGet.left().value()); + } + return result; + } + + private Either<User, ActionStatus> deleteUserLogic(UserData userData) { + Wrapper<Either<User, ActionStatus>> resultWrapper = new Wrapper<>(); + try { + validateUserHasNoConnections(resultWrapper, userData); + if (resultWrapper.isEmpty()) { + deleteUser(resultWrapper, userData); + } + } finally { + titanGenericDao.commit(); + } + return resultWrapper.getInnerElement(); + } + + private void deleteUser(Wrapper<Either<User, ActionStatus>> resultWrapper, UserData userData) { + Either<UserData, TitanOperationStatus> eitherDelete = titanGenericDao.deleteNode(userData, UserData.class); + if (eitherDelete.isRight()) { + if (log.isDebugEnabled()) { + log.debug("Problem while deleting User {}. Reason - {}", userData.toString(), eitherDelete.right().value()); + } + resultWrapper.setInnerElement(Either.right(ActionStatus.GENERAL_ERROR)); + } else { + log.debug("User {} deleted successfully",userData.getUserId()); + resultWrapper.setInnerElement(Either.left(convertToUser(eitherDelete.left().value()))); + } + } + + private void validateUserHasNoConnections(Wrapper<Either<User, ActionStatus>> resultWrapper, UserData userData) { + if (resultWrapper.isEmpty()) { + + Either<List<Edge>, TitanOperationStatus> edgesForNode = titanGenericDao.getEdgesForNode(userData, Direction.BOTH); + if (edgesForNode.isRight()) { + if (log.isDebugEnabled()) { + log.debug("Problem while deleting User {}. Reason - {}", userData.getUserId(), edgesForNode.right().value()); + } + resultWrapper.setInnerElement(Either.right(ActionStatus.GENERAL_ERROR)); + } else { + List<Edge> vertexEdges = edgesForNode.left().value(); + if (!isEmpty(vertexEdges)) { + resultWrapper.setInnerElement(Either.right(ActionStatus.USER_HAS_ACTIVE_ELEMENTS)); + } + } + } + } + + public Either<List<Edge>, StorageOperationStatus> getUserPendingTasksList(User user, Map<String, Object> properties) { + + Either<TitanVertex, TitanOperationStatus> vertexUser = titanGenericDao.getVertexByProperty(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.User), user.getUserId()); + if (vertexUser.isRight()) { + TitanOperationStatus tos = vertexUser.right().value(); + log.debug("Failed to get User {} from graph while retrieving pending tasks. Reason - {}", user.getUserId(), tos); + return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(tos)); + } + List<Edge> pendingTasks = new ArrayList<>(); + Either<List<Edge>, TitanOperationStatus> edges = titanGenericDao.getOutgoingEdgesByCriteria(vertexUser.left().value(), GraphEdgeLabels.STATE, properties); + if (edges.isRight() || edges.left().value() == null) { + TitanOperationStatus tos = edges.right().value(); + if (tos == TitanOperationStatus.NOT_FOUND) { + return Either.left(pendingTasks); + } else { + log.debug("Failed while retrieving pending tasks for user {} . Reason - {}", user.getUserId(), tos); + return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(tos)); + } + } + for (Edge edge : edges.left().value()) { + if (!isComponentDeleted(edge.inVertex())) { + pendingTasks.add(edge); + } + } + logPendingTasks(user, pendingTasks); + return Either.left(pendingTasks); + } + + private boolean isComponentDeleted(Vertex componentVertex) { + VertexProperty<Object> property = componentVertex.property(GraphPropertiesDictionary.IS_DELETED.getProperty()); + if (property.isPresent()) { + return BooleanUtils.isTrue((Boolean) property.value()); + } + return false; + } + + private void logPendingTasks(User user, List<Edge> pendingTasks) { + if (log.isDebugEnabled()) { + for (Edge edge : pendingTasks) { + Object resourceUuid = edge.inVertex().property(GraphPropertyEnum.UNIQUE_ID.getProperty()).value(); + Object componentName = edge.inVertex().property(GraphPropertyEnum.NAME.getProperty()).value(); + Object componentState = edge.inVertex().property(GraphPropertyEnum.STATE.getProperty()).value(); + log.debug("The user userId = {} is working on the component name = {} uid = {} in state {}", user.getUserId(), componentName, resourceUuid, componentState); + } + } + } + + @Override + public Either<List<User>, ActionStatus> getAllUsersWithRole(String role, String status) { + try { + Map<String, Object> propertiesToMatch = new HashMap<>(); + if (role != null && !role.trim().isEmpty()) { + propertiesToMatch.put(GraphPropertiesDictionary.ROLE.getProperty(), role); + } + if (status != null && !status.isEmpty()) { + propertiesToMatch.put(GraphPropertiesDictionary.USER_STATUS.getProperty(), status); + } + + Either<List<UserData>, TitanOperationStatus> userNodes = titanGenericDao.getByCriteria(NodeTypeEnum.User, propertiesToMatch, UserData.class); + + titanGenericDao.commit(); + return convertToUsers(role, userNodes); + } finally { + titanGenericDao.commit(); + } + } + + private Either<List<User>, ActionStatus> convertToUsers(String role, Either<List<UserData>, TitanOperationStatus> userNodes) { + + if (userNodes.isRight()) { // in case of NOT_FOUND from Titan return empty list - if (userNodes.right().value().equals(TitanOperationStatus.NOT_FOUND)) { + TitanOperationStatus tos = userNodes.right().value(); + if (tos.equals(TitanOperationStatus.NOT_FOUND)) { return Either.left(Collections.emptyList()); } else { - log.error("Problem while getting all users with role {}. Reason - {}", role, userNodes.right().value().name()); + log.error("Problem while getting all users with role {}. Reason - {}", role, tos); return Either.right(ActionStatus.GENERAL_ERROR); } } else { - List<UserData> userDataList = userNodes.left().value(); + List<UserData> userDataList = userNodes.left().value(); if (userDataList != null) { return Either.left(convertToUsers(userDataList)); } log.debug("No users were found with role {}", role); return Either.left(Collections.emptyList()); } - } - - private List<User> convertToUsers(List<UserData> usersData) { - List<User> result = new ArrayList<>(); - for (UserData userData : usersData) { - User user = convertToUser(userData); - result.add(user); - } - return result; - } - - private Either<User, ActionStatus> getUserNotFoundError(String uid, TitanOperationStatus status) { - if (status == TitanOperationStatus.NOT_FOUND) { + } + + private List<User> convertToUsers(List<UserData> usersData) { + List<User> result = new ArrayList<>(); + for (UserData userData : usersData) { + User user = convertToUser(userData); + result.add(user); + } + return result; + } + + private Either<User, ActionStatus> getUserNotFoundError(String uid, TitanOperationStatus status) { + if (status == TitanOperationStatus.NOT_FOUND) { log.debug("User with userId {} not found", uid); return Either.right(ActionStatus.USER_NOT_FOUND); } else { - log.debug("Problem get User with userId {}. Reason - {}", uid, status.name()); + log.debug("Problem get User with userId {}. Reason - {}", uid, status); return Either.right(ActionStatus.GENERAL_ERROR); } - } - - protected User convertToUser(UserData userData) { - User user = new User(); - user.setUserId(userData.getUserId()); - user.setEmail(userData.getEmail()); - user.setFirstName(userData.getFirstName()); - user.setLastName(userData.getLastName()); - user.setRole(userData.getRole()); - user.setLastLoginTime(userData.getLastLoginTime()); - // Support backward compatibility - user status may not exist in old - // users - Either<UserStatusEnum, MethodActivationStatusEnum> either = UserStatusEnum.findByName(userData.getStatus()); - user.setStatus(either.isLeft() ? either.left().value() : UserStatusEnum.ACTIVE); - return user; - } - - protected UserData convertToUserData(User user) { - UserData userData = new UserData(); - userData.setUserId(user.getUserId().toLowerCase()); - userData.setEmail(user.getEmail()); - userData.setFirstName(user.getFirstName()); - userData.setLastName(user.getLastName()); - userData.setRole(user.getRole()); - userData.setStatus(user.getStatus().name()); - userData.setLastLoginTime(user.getLastLoginTime()); - return userData; - } + } + + protected User convertToUser(UserData userData) { + User user = new User(); + user.setUserId(userData.getUserId()); + user.setEmail(userData.getEmail()); + user.setFirstName(userData.getFirstName()); + user.setLastName(userData.getLastName()); + user.setRole(userData.getRole()); + user.setLastLoginTime(userData.getLastLoginTime()); + // Support backward compatibility - user status may not exist in old + // users + Either<UserStatusEnum, MethodActivationStatusEnum> either = UserStatusEnum.findByName(userData.getStatus()); + user.setStatus(either.isLeft() ? either.left().value() : UserStatusEnum.ACTIVE); + return user; + } + + protected UserData convertToUserData(User user) { + UserData userData = new UserData(); + userData.setUserId(user.getUserId().toLowerCase()); + userData.setEmail(user.getEmail()); + userData.setFirstName(user.getFirstName()); + userData.setLastName(user.getLastName()); + userData.setRole(user.getRole()); + userData.setStatus(user.getStatus().name()); + userData.setLastLoginTime(user.getLastLoginTime()); + return userData; + } } |