Skip to content

Commit 862ecd6

Browse files
authored
Merge pull request #207 from topcoder-platform/issue-4587
Issue-4587 : Update action loadProfileDone() to use v3 API
2 parents 9c3ad4b + 4b2df6b commit 862ecd6

File tree

2 files changed

+14
-10
lines changed

2 files changed

+14
-10
lines changed

__tests__/actions/auth.js

+7-3
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,17 @@
11
const MOCK_GROUPS_REQ_URL = 'https://api.topcoder-dev.com/v5/groups?memberId=12345&membershipType=user';
2-
const MOCK_PROFILE_REQ_URL = 'https://api.topcoder-dev.com/v5/members/username12345';
2+
const MOCK_PROFILE_REQ_URL = 'https://api.topcoder-dev.com/v3/members/username12345';
33

44
jest.mock('isomorphic-fetch', () => jest.fn(url => Promise.resolve({
55
ok: true,
66
json: () => {
77
let content;
88
switch (url) {
9-
case MOCK_GROUPS_REQ_URL: content = ['Group1', 'Group2']; break;
10-
case MOCK_PROFILE_REQ_URL: content = [{ userId: 12345 }]; break;
9+
case MOCK_GROUPS_REQ_URL:
10+
content = ['Group1', 'Group2'];
11+
break;
12+
case MOCK_PROFILE_REQ_URL:
13+
content = { result: { content: { userId: 12345 }, status: 200 } };
14+
break;
1115
default: throw new Error('Unexpected URL!');
1216
}
1317
return content;

src/actions/auth.js

+7-7
Original file line numberDiff line numberDiff line change
@@ -5,23 +5,23 @@
55

66
import { createActions } from 'redux-actions';
77
import { decodeToken } from 'tc-accounts';
8-
import { getApi } from '../services/api';
8+
import { getApiV3, getApiV5 } from '../services/api';
99

1010
/**
1111
* @static
12-
* @desc Creates an action that loads Topcoder user profile from v5 API.
12+
* @desc Creates an action that loads Topcoder user profile from v3 API.
1313
* @param {String} userTokenV3 v3 authentication token.
1414
* @return {Action}
1515
*/
1616
function loadProfileDone(userTokenV3) {
1717
if (!userTokenV3) return Promise.resolve(null);
1818
const user = decodeToken(userTokenV3);
19-
const api = getApi('V5', userTokenV3);
19+
const apiV3 = getApiV3(userTokenV3);
20+
const apiV5 = getApiV5(userTokenV3);
2021
return Promise.all([
21-
api.get(`/members/${user.handle}`)
22-
.then(res => (res.ok ? res.json() : new Error(res.statusText)))
23-
.then(res => (res.message ? new Error(res.message) : res[0])),
24-
api.get(`/groups?memberId=${user.userId}&membershipType=user`)
22+
apiV3.get(`/members/${user.handle}`)
23+
.then(res => res.json()).then(res => (res.result.status === 200 ? res.result.content : {})),
24+
apiV5.get(`/groups?memberId=${user.userId}&membershipType=user`)
2525
.then(res => (res.ok ? res.json() : new Error(res.statusText)))
2626
.then(res => (res.message ? new Error(res.message) : res)),
2727
]).then(([profile, groups]) => ({ ...profile, groups }));

0 commit comments

Comments
 (0)