3e7b2b1489ec24765750c1f44517471f266b0f0c
[portal/sdk.git] /
1 package org.openecomp.portalsdk.core.service;
2
3 import java.io.IOException;
4 import java.util.ArrayList;
5 import java.util.HashSet;
6 import java.util.Iterator;
7 import java.util.List;
8 import java.util.SortedSet;
9
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;
16
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;
21
22
23 @Transactional
24 public class UserProfileServiceCentalizedImpl implements UserProfileService {
25
26         private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(UserProfileServiceCentalizedImpl.class);
27
28         @Autowired
29         AppService appService;
30         
31         @Autowired
32         RestApiRequestBuilder restApiRequestBuilder;
33         
34         @Autowired
35         private DataAccessService  dataAccessService;
36
37         public DataAccessService getDataAccessService() {
38                 return dataAccessService;
39         }
40
41         public void setDataAccessService(DataAccessService dataAccessService) {
42                 this.dataAccessService = dataAccessService;
43         }
44
45         @Override
46         public List<User> findAll() {
47                 List<User> roles = new ArrayList<>();
48                 ObjectMapper mapper = new ObjectMapper();
49
50                 String user = restApiRequestBuilder.getViaREST("/findAll", true,null);
51                 try {
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);
60                 }
61
62                 return roles;
63         }
64
65         @Override
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);
70                 try {
71
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);
79                 }
80
81                 return user;
82         }
83
84         @Override
85         public User getUserByLoginId(String loginId) {
86                 return getUser(loginId);
87         }
88
89         @Override
90         public void saveUser(User user) {
91                 try {
92                         getDataAccessService().saveDomainObject(user, null);
93                 } catch (Exception e) {
94                         logger.error(EELFLoggerDelegate.errorLogger, "saveUser Failed", e);
95                 }
96         }
97
98         @Override
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()))
104                                 u.setOnline(true);
105                         if (u.getOrgUserId() != null) {
106                                 if (originOrgUserId.compareTo(u.getOrgUserId()) > 0) {
107                                         u.setChatId(originOrgUserId + "-" + u.getOrgUserId());
108                                 } else
109                                         u.setChatId(u.getOrgUserId() + "-" + originOrgUserId);
110                         }
111                 }
112                 return users;
113         }
114
115         @Override
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();
121                         if (!u.getActive())
122                                 itr.remove();// if not active remove user from list
123                         else {
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
130                                                                                                         // from list
131                                 }
132                         }
133                 }
134                 return users;
135         }       
136
137 }