· 6 years ago · Nov 07, 2018, 10:18 AM
1// Get User profile
2export function getUserProfile(userEmail: string): Function {
3
4 return (dispatch: Function, getState) => {
5 const oauthState = getState().toJS().oauthState;
6 const userRealm: string = oauthState.user_realm.toLowerCase();
7 const oauthToken: string = oauthState.oauthResponse.oauthToken;
8
9 return request
10 .get(SystemVarsUtil.getJanusApiUrl().concat('v2/organizations/', userRealm, '/users/', encodeURIComponent(userEmail)))
11 .set('Authorization', 'Bearer ' + oauthToken)
12 .set('Accept', 'application/json')
13 .set('Content-Type', 'application/json')
14 .timeout(API_TIMEOUT)
15 .end(function (err, res) {
16
17 if (res && res.status === 401) {
18 dispatch(setUnauthorized());
19 console.log('error: ', err, '\nresult: ', res);
20 }
21 else if (err || res.status >= 404 || res.status >= 400) {
22 console.log('error: ', err, '\nresult: ', res);
23 console.log("Unsuccessful getting user's profile.");
24 dispatch(setUserProfileError(true, 'There was an error getting the user profile.'));
25 dispatch(setUserProfileSpinner(false));
26 }
27 else {
28 let userData: userData = {
29 givenName: res.body.givenName,
30 surName: res.body.sn,
31 email: res.body.mail,
32 phone: res.body.telephoneNumber,
33 role: res.body.role,
34 team: res.body.team,
35 language: res.body.language,
36 timezone: res.body.timezone,
37 country: res.body.country,
38 displayName: res.body.displayName,
39 uiStatus: res.body.uiStatus,
40 accountLock: res.body.accountLock,
41 managerOf: res.body.managerOf,
42 deployments: res.body.deployments
43 };
44
45 window.setTimeout(() => {
46 dispatch(loadUserProfile(userData));
47 dispatch(setUserProfileSpinner(false));
48 }, 200);
49 }
50 });
51 }
52}