1 package org.openecomp.portalsdk.core.service;
3 import java.io.IOException;
4 import java.util.ArrayList;
5 import java.util.HashSet;
6 import java.util.Iterator;
8 import java.util.SortedSet;
10 import org.openecomp.portalsdk.core.domain.Role;
11 import org.openecomp.portalsdk.core.domain.User;
12 import org.openecomp.portalsdk.core.domain.support.CollaborateList;
13 import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate;
14 import org.springframework.beans.factory.annotation.Autowired;
15 import org.springframework.transaction.annotation.Transactional;
17 import com.fasterxml.jackson.core.JsonParseException;
18 import com.fasterxml.jackson.databind.JsonMappingException;
19 import com.fasterxml.jackson.databind.ObjectMapper;
20 import com.fasterxml.jackson.databind.type.TypeFactory;
24 public class UserProfileServiceCentalizedImpl implements UserProfileService {
26 private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(UserProfileServiceCentalizedImpl.class);
29 AppService appService;
32 RestApiRequestBuilder restApiRequestBuilder;
35 private DataAccessService dataAccessService;
37 public DataAccessService getDataAccessService() {
38 return dataAccessService;
41 public void setDataAccessService(DataAccessService dataAccessService) {
42 this.dataAccessService = dataAccessService;
46 public List<User> findAll() {
47 List<User> roles = new ArrayList<>();
48 ObjectMapper mapper = new ObjectMapper();
50 String user = restApiRequestBuilder.getViaREST("/findAll", true,null);
52 roles = mapper.readValue(user,
53 TypeFactory.defaultInstance().constructCollectionType(List.class, User.class));
54 } catch (JsonParseException e) {
55 logger.error(EELFLoggerDelegate.errorLogger, "Json parsing failed", e);
56 } catch (JsonMappingException e) {
57 logger.error(EELFLoggerDelegate.errorLogger, "Json mapping failed", e);
58 } catch (IOException e) {
59 logger.error(EELFLoggerDelegate.errorLogger, "IO exception", e);
66 public User getUser(String id) {
67 ObjectMapper mapper = new ObjectMapper();
68 User user = new User();
69 String responseString = restApiRequestBuilder.getViaREST("/getUser/" + id, true,id);
72 user = mapper.readValue(responseString, User.class);
73 } catch (JsonParseException e) {
74 logger.error(EELFLoggerDelegate.errorLogger, "Json parsing failed", e);
75 } catch (JsonMappingException e) {
76 logger.error(EELFLoggerDelegate.errorLogger, "Json mapping failed", e);
77 } catch (IOException e) {
78 logger.error(EELFLoggerDelegate.errorLogger, "IO exception", e);
85 public User getUserByLoginId(String loginId) {
86 return getUser(loginId);
90 public void saveUser(User user) {
92 getDataAccessService().saveDomainObject(user, null);
93 } catch (Exception e) {
94 logger.error(EELFLoggerDelegate.errorLogger, "saveUser Failed", e);
99 public List<User> findAllUserWithOnOffline(String originOrgUserId) {
100 HashSet<String> onlineUser = CollaborateList.getInstance().getAllUserName();
101 List<User> users = findAll();
102 for (User u : users) {
103 if (onlineUser.contains(u.getOrgUserId()))
105 if (u.getOrgUserId() != null) {
106 if (originOrgUserId.compareTo(u.getOrgUserId()) > 0) {
107 u.setChatId(originOrgUserId + "-" + u.getOrgUserId());
109 u.setChatId(u.getOrgUserId() + "-" + originOrgUserId);
116 public List<User> findAllActive() {
117 List<User> users = findAll();
118 Iterator<User> itr = users.iterator();
119 while (itr.hasNext()) {
120 User u = (User) itr.next();
122 itr.remove();// if not active remove user from list
124 SortedSet<Role> roles = u.getRoles();
125 Iterator<Role> itrRoles = roles.iterator();
126 while (itrRoles.hasNext()) {
127 Role role = (Role) itrRoles.next();
128 if (!role.getActive())
129 u.removeRole(role.getId());// if not active remove role