879b2a9a1944b9f9daeb522988980859e5c377b8
[portal/sdk.git] /
1 package org.openecomp.portalsdk.core.service;
2
3 import java.util.HashMap;
4 import java.util.HashSet;
5 import java.util.Iterator;
6 import java.util.List;
7 import java.util.Map;
8 import java.util.Set;
9 import java.util.SortedSet;
10 import java.util.TreeSet;
11
12 import org.openecomp.portalsdk.core.domain.Role;
13 import org.openecomp.portalsdk.core.domain.RoleFunction;
14 import org.openecomp.portalsdk.core.domain.User;
15 import org.openecomp.portalsdk.core.domain.UserApp;
16 import org.springframework.beans.factory.annotation.Autowired;
17 import org.springframework.transaction.annotation.Transactional;
18
19 import com.fasterxml.jackson.databind.ObjectMapper;
20
21 @Transactional
22 public class UserServiceCentalizedImpl implements UserService {
23
24         @Autowired
25         AppService appService;
26         
27         @Autowired
28         RestApiRequestBuilder restApiRequestBuilder;
29         
30         @Autowired
31         LoginService loginService;
32                 
33         @Autowired
34         private DataAccessService  dataAccessService;
35
36         public DataAccessService getDataAccessService() {
37                 return dataAccessService;
38         }
39
40         public void setDataAccessService(DataAccessService dataAccessService) {
41                 this.dataAccessService = dataAccessService;
42         }
43
44         
45         @Override
46         public User getUser(String id) throws Exception {
47                 ObjectMapper mapper = new ObjectMapper();
48                 User user = new User();
49                 HashSet<RoleFunction> rolefun = null;
50                 String orgUserId = getUserByProfileId(id);
51                 String responseString = restApiRequestBuilder.getViaREST("/user/" + orgUserId, true, id);
52                 user = mapper.readValue(responseString, User.class);
53                 
54                 @SuppressWarnings("unchecked")
55                 Set<UserApp> setAppsObj = user.getUserApps();
56
57                 Iterator<UserApp> it = setAppsObj.iterator();
58                 while (it.hasNext()) {
59                         Object next = it.next();
60
61                         UserApp nextApp = mapper.convertValue(next, UserApp.class);
62                         rolefun = new HashSet<>();
63                         Role role = nextApp.getRole();
64
65                         Set<RoleFunction> roleFunctionList = role.getRoleFunctions();
66                         Set<RoleFunction> roleFunctionListNew = new HashSet<>();
67                         Iterator<RoleFunction> itetaror = roleFunctionList.iterator();
68                         while (itetaror.hasNext()) {
69                                 Object nextValue = itetaror.next();
70                                 RoleFunction roleFunction = mapper.convertValue(nextValue, RoleFunction.class);
71                                 roleFunctionListNew.add(roleFunction);
72                         }
73
74                         role.setRoleFunctions(roleFunctionListNew);
75                         nextApp.setRole(role);
76                         nextApp.getRole().getRoleFunctions();
77                         SortedSet<UserApp> UserAppSet = new TreeSet<>();
78                         UserAppSet.add(nextApp);
79                         user.setUserApps(UserAppSet);
80                 }
81                 
82                 return user;
83         }
84
85         public String getUserByProfileId(String id) {
86                 Map<String, Long> params = new HashMap<String, Long>();
87                 params.put("user_id", new Long(id));
88                 @SuppressWarnings("rawtypes")
89                 List list = getDataAccessService().executeNamedQuery("getUserByProfileId", params, null);
90                 String orgUserId = "";
91                 if (list != null && !list.isEmpty())
92                         orgUserId = (String) list.get(0);
93                 return orgUserId;
94         }
95
96 }