Skip to content

Commit 7f20b1b

Browse files
authored
Merge pull request #66 from vigneshTheDev/develop
update email preferences to use v5 api
2 parents a78ae4d + b382b4a commit 7f20b1b

File tree

7 files changed

+26
-24
lines changed

7 files changed

+26
-24
lines changed

__tests__/actions/__snapshots__/profile.js.snap

+1
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,7 @@ Object {
166166
},
167167
},
168168
"handle": "tcscoder",
169+
"preferences": Object {},
169170
},
170171
"type": "PROFILE/SAVE_EMAIL_PREFERENCES_DONE",
171172
}

__tests__/reducers/__snapshots__/profile.js.snap

+6-6
Original file line numberDiff line numberDiff line change
@@ -740,7 +740,7 @@ Object {
740740
"deletingPhoto": false,
741741
"deletingWebLink": false,
742742
"emailPreferences": Object {
743-
"TOPCODER_NL_DATA": true,
743+
"Dev Newsletter": true,
744744
},
745745
"externalLinks": Array [
746746
Object {
@@ -939,7 +939,7 @@ Object {
939939
"deletingPhoto": false,
940940
"deletingWebLink": false,
941941
"emailPreferences": Object {
942-
"TOPCODER_NL_DATA": true,
942+
"Dev Newsletter": true,
943943
},
944944
"externalLinks": Array [
945945
Object {
@@ -989,7 +989,7 @@ Object {
989989
"deletingPhoto": false,
990990
"deletingWebLink": false,
991991
"emailPreferences": Object {
992-
"TOPCODER_NL_DATA": true,
992+
"Dev Newsletter": true,
993993
},
994994
"externalLinks": Array [
995995
Object {
@@ -1926,7 +1926,7 @@ Object {
19261926
"deletingPhoto": false,
19271927
"deletingWebLink": false,
19281928
"emailPreferences": Object {
1929-
"TOPCODER_NL_DATA": true,
1929+
"Dev Newsletter": true,
19301930
},
19311931
"externalLinks": Array [
19321932
Object {
@@ -2125,7 +2125,7 @@ Object {
21252125
"deletingPhoto": false,
21262126
"deletingWebLink": false,
21272127
"emailPreferences": Object {
2128-
"TOPCODER_NL_DATA": true,
2128+
"Dev Newsletter": true,
21292129
},
21302130
"externalLinks": Array [
21312131
Object {
@@ -2175,7 +2175,7 @@ Object {
21752175
"deletingPhoto": false,
21762176
"deletingWebLink": false,
21772177
"emailPreferences": Object {
2178-
"TOPCODER_NL_DATA": true,
2178+
"Dev Newsletter": true,
21792179
},
21802180
"externalLinks": Array [
21812181
Object {

__tests__/reducers/profile.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ const mockActions = {
3333
deleteWebLinkInit: mockAction('DELETE_WEB_LINK_INIT'),
3434
deleteWebLinkDone: mockAction('DELETE_WEB_LINK_DONE', { handle, data: webLink }),
3535
saveEmailPreferencesInit: mockAction('SAVE_EMAIL_PREFERENCES_INIT'),
36-
saveEmailPreferencesDone: mockAction('SAVE_EMAIL_PREFERENCES_DONE', { handle, data: { subscriptions: { TOPCODER_NL_DATA: true } } }),
36+
saveEmailPreferencesDone: mockAction('SAVE_EMAIL_PREFERENCES_DONE', { handle, preferences: { 'Dev Newsletter': true } }),
3737
linkExternalAccountInit: mockAction('LINK_EXTERNAL_ACCOUNT_INIT'),
3838
linkExternalAccountDone: mockAction('LINK_EXTERNAL_ACCOUNT_DONE', { handle, data: linkedAccount2 }),
3939
unlinkExternalAccountInit: mockAction('UNLINK_EXTERNAL_ACCOUNT_INIT'),

config/test.js

+1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ module.exports = {
22
API: {
33
V2: 'https://api.topcoder-dev.com/v2',
44
V3: 'https://api.topcoder-dev.com/v3',
5+
V5: 'https://api.topcoder-dev.com/v5',
56
},
67
dummyConfigKey: 'Dummy config value',
78
};

src/actions/profile.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -397,7 +397,7 @@ function saveEmailPreferencesInit() {}
397397
function saveEmailPreferencesDone(profile, tokenV3, preferences) {
398398
const service = getUserService(tokenV3);
399399
return service.saveEmailPreferences(profile, preferences)
400-
.then(res => ({ data: res, handle: profile.handle }));
400+
.then(res => ({ data: res, handle: profile.handle, preferences }));
401401
}
402402

403403
/**

src/reducers/profile.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -434,13 +434,13 @@ function onSaveEmailPreferencesDone(state, { payload, error }) {
434434
return newState;
435435
}
436436

437-
if (newState.profileForHandle !== payload.handle || !payload.data) {
437+
if (newState.profileForHandle !== payload.handle) {
438438
return newState;
439439
}
440440

441441
return {
442442
...newState,
443-
emailPreferences: payload.data.subscriptions,
443+
emailPreferences: payload.preferences,
444444
};
445445
}
446446

src/services/user.js

+14-14
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,7 @@ class User {
114114
this.private = {
115115
api: getApi('V3', tokenV3),
116116
apiV2: getApi('V2', tokenV2),
117+
apiV5: getApi('V5', tokenV3),
117118
tokenV2,
118119
tokenV3,
119120
};
@@ -174,10 +175,10 @@ class User {
174175
* @returns {Promise} Resolves to the email preferences result
175176
*/
176177
async getEmailPreferences(userId) {
177-
const url = `/users/${userId}/preferences/email`;
178-
const res = await this.private.api.get(url);
179-
const x = (await res.json()).result;
180-
return x.content;
178+
const url = `/users/${userId}/preferences`;
179+
const res = await this.private.apiV5.get(url);
180+
const x = (await res.json());
181+
return x.email;
181182
}
182183

183184
/**
@@ -193,18 +194,17 @@ class User {
193194
const settings = {
194195
firstName,
195196
lastName,
196-
subscriptions: {},
197+
createdBy: String(userId),
198+
updatedBy: String(userId),
199+
subscriptions: preferences,
197200
};
198201

199-
if (!preferences) {
200-
settings.subscriptions.TOPCODER_NL_GEN = true;
201-
} else {
202-
settings.subscriptions = preferences;
203-
}
204-
const url = `/users/${userId}/preferences/email`;
205-
206-
const res = await this.private.api.putJson(url, { param: settings });
207-
return getApiResponsePayload(res);
202+
const url = `/users/${userId}/preferences`;
203+
const res = await this.private.apiV5.putJson(
204+
url,
205+
{ email: settings, objectId: String(userId) },
206+
);
207+
return res;
208208
}
209209

210210
/**

0 commit comments

Comments
 (0)