diff options
Diffstat (limited to 'ecomp-sdk/epsdk-core/src/main/java/org/openecomp/portalsdk/core/service/UserProfileServiceCentalizedImpl.java')
-rw-r--r-- | ecomp-sdk/epsdk-core/src/main/java/org/openecomp/portalsdk/core/service/UserProfileServiceCentalizedImpl.java | 137 |
1 files changed, 137 insertions, 0 deletions
diff --git a/ecomp-sdk/epsdk-core/src/main/java/org/openecomp/portalsdk/core/service/UserProfileServiceCentalizedImpl.java b/ecomp-sdk/epsdk-core/src/main/java/org/openecomp/portalsdk/core/service/UserProfileServiceCentalizedImpl.java new file mode 100644 index 00000000..3e7b2b14 --- /dev/null +++ b/ecomp-sdk/epsdk-core/src/main/java/org/openecomp/portalsdk/core/service/UserProfileServiceCentalizedImpl.java @@ -0,0 +1,137 @@ +package org.openecomp.portalsdk.core.service; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.Iterator; +import java.util.List; +import java.util.SortedSet; + +import org.openecomp.portalsdk.core.domain.Role; +import org.openecomp.portalsdk.core.domain.User; +import org.openecomp.portalsdk.core.domain.support.CollaborateList; +import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.transaction.annotation.Transactional; + +import com.fasterxml.jackson.core.JsonParseException; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.type.TypeFactory; + + +@Transactional +public class UserProfileServiceCentalizedImpl implements UserProfileService { + + private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(UserProfileServiceCentalizedImpl.class); + + @Autowired + AppService appService; + + @Autowired + RestApiRequestBuilder restApiRequestBuilder; + + @Autowired + private DataAccessService dataAccessService; + + public DataAccessService getDataAccessService() { + return dataAccessService; + } + + public void setDataAccessService(DataAccessService dataAccessService) { + this.dataAccessService = dataAccessService; + } + + @Override + public List<User> findAll() { + List<User> roles = new ArrayList<>(); + ObjectMapper mapper = new ObjectMapper(); + + String user = restApiRequestBuilder.getViaREST("/findAll", true,null); + try { + roles = mapper.readValue(user, + TypeFactory.defaultInstance().constructCollectionType(List.class, User.class)); + } catch (JsonParseException e) { + logger.error(EELFLoggerDelegate.errorLogger, "Json parsing failed", e); + } catch (JsonMappingException e) { + logger.error(EELFLoggerDelegate.errorLogger, "Json mapping failed", e); + } catch (IOException e) { + logger.error(EELFLoggerDelegate.errorLogger, "IO exception", e); + } + + return roles; + } + + @Override + public User getUser(String id) { + ObjectMapper mapper = new ObjectMapper(); + User user = new User(); + String responseString = restApiRequestBuilder.getViaREST("/getUser/" + id, true,id); + try { + + user = mapper.readValue(responseString, User.class); + } catch (JsonParseException e) { + logger.error(EELFLoggerDelegate.errorLogger, "Json parsing failed", e); + } catch (JsonMappingException e) { + logger.error(EELFLoggerDelegate.errorLogger, "Json mapping failed", e); + } catch (IOException e) { + logger.error(EELFLoggerDelegate.errorLogger, "IO exception", e); + } + + return user; + } + + @Override + public User getUserByLoginId(String loginId) { + return getUser(loginId); + } + + @Override + public void saveUser(User user) { + try { + getDataAccessService().saveDomainObject(user, null); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "saveUser Failed", e); + } + } + + @Override + public List<User> findAllUserWithOnOffline(String originOrgUserId) { + HashSet<String> onlineUser = CollaborateList.getInstance().getAllUserName(); + List<User> users = findAll(); + for (User u : users) { + if (onlineUser.contains(u.getOrgUserId())) + u.setOnline(true); + if (u.getOrgUserId() != null) { + if (originOrgUserId.compareTo(u.getOrgUserId()) > 0) { + u.setChatId(originOrgUserId + "-" + u.getOrgUserId()); + } else + u.setChatId(u.getOrgUserId() + "-" + originOrgUserId); + } + } + return users; + } + + @Override + public List<User> findAllActive() { + List<User> users = findAll(); + Iterator<User> itr = users.iterator(); + while (itr.hasNext()) { + User u = (User) itr.next(); + if (!u.getActive()) + itr.remove();// if not active remove user from list + else { + SortedSet<Role> roles = u.getRoles(); + Iterator<Role> itrRoles = roles.iterator(); + while (itrRoles.hasNext()) { + Role role = (Role) itrRoles.next(); + if (!role.getActive()) + u.removeRole(role.getId());// if not active remove role + // from list + } + } + } + return users; + } + +} |