From dba4d704af0f5240307124c960805f7dcfe1a931 Mon Sep 17 00:00:00 2001 From: rashmi73 <41687423+rashmi73@users.noreply.github.com> Date: Sat, 30 Mar 2019 17:15:59 +0530 Subject: [PATCH 1/3] Update user.js --- src/services/user.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/services/user.js b/src/services/user.js index 13ec5948..7da7f53b 100644 --- a/src/services/user.js +++ b/src/services/user.js @@ -166,7 +166,8 @@ class User { async getEmailPreferences(userId) { const url = `/users/${userId}/preferences/email`; const res = await this.private.api.get(url); - return getApiResponsePayload(res); + const x = (await res.json()).result; + return x.content; } /** From f20fe12b42aa009fb89c7d4d11854160b3b0e227 Mon Sep 17 00:00:00 2001 From: applehit16 Date: Thu, 18 Apr 2019 02:29:56 -0700 Subject: [PATCH 2/3] show error message when user email is used --- src/actions/profile.js | 11 +++++++++++ src/reducers/profile.js | 22 ++++++++++++++++++++++ src/services/members.js | 3 +++ 3 files changed, 36 insertions(+) diff --git a/src/actions/profile.js b/src/actions/profile.js index f877b3ab..3996263c 100644 --- a/src/actions/profile.js +++ b/src/actions/profile.js @@ -434,6 +434,16 @@ function verifyMemberNewEmailDone(handle, tokenV3, emailVerifyToken) { .then(res => ({ data: res })); } +/** + * @static + * @desc Creates an action that toggles isEmailConflict state + * @param {boolean} state + * @return {Action} + */ +function updateEmailConflict(state = false) { + return state; +} + export default createActions({ PROFILE: { LOAD_PROFILE: loadProfile, @@ -480,5 +490,6 @@ export default createActions({ UPDATE_PASSWORD_DONE: updatePasswordDone, VERIFY_MEMBER_NEW_EMAIL_INIT: verifyMemberNewEmailInit, VERIFY_MEMBER_NEW_EMAIL_DONE: verifyMemberNewEmailDone, + UPDATE_EMAIL_CONFLICT: updateEmailConflict, }, }); diff --git a/src/reducers/profile.js b/src/reducers/profile.js index c463bf10..1d7711a7 100644 --- a/src/reducers/profile.js +++ b/src/reducers/profile.js @@ -212,6 +212,14 @@ function onDeletePhotoDone(state, { payload, error }) { function onUpdateProfileDone(state, { payload, error }) { const newState = { ...state, updatingProfile: false }; + if (payload.isEmailConflict) { + return { + ...newState, + isEmailConflict: true, + updateProfileSuccess: false, + }; + } + if (error) { logger.error('Failed to update user profile', payload); fireErrorMessage('ERROR: Failed to update user profile!'); @@ -455,6 +463,19 @@ function onVerifyMemberNewEmailDone(state, { payload, error }) { }; } +/** + * Handles UPDATE_EMAIL_CONFLICT action + * @param {Object} state + * @param {Object} action Payload will be a boolean value + * @return {Object} New state + */ +function onUpdateEmailConflict(state, { payload }) { + return { + ...state, + isEmailConflict: payload, + }; +} + /** * Creates a new Profile reducer with the specified initial state. * @param {Object} initialState Optional. Initial state. @@ -509,6 +530,7 @@ function create(initialState) { [a.updatePasswordDone]: onUpdatePasswordDone, [a.verifyMemberNewEmailInit]: state => ({ ...state, verifyingEmail: true }), [a.verifyMemberNewEmailDone]: onVerifyMemberNewEmailDone, + [a.updateEmailConflict]: onUpdateEmailConflict, }, _.defaults(initialState, { achievements: null, copilot: false, diff --git a/src/services/members.js b/src/services/members.js index 84b97f56..62afbf36 100644 --- a/src/services/members.js +++ b/src/services/members.js @@ -204,6 +204,9 @@ class MembersService { async updateMemberProfile(profile) { const url = profile.verifyUrl ? `/members/${profile.handle}?verifyUrl=${profile.verifyUrl}` : `/members/${profile.handle}`; const res = await this.private.api.putJson(url, { param: profile.verifyUrl ? _.omit(profile, ['verifyUrl']) : profile }); + if (profile.verifyUrl && res.status === 409) { + return Promise.resolve(Object.assign({}, profile, { isEmailConflict: true })); + } return getApiResponsePayload(res); } From 7108325df39373000358fb906ca26f30b1b01de0 Mon Sep 17 00:00:00 2001 From: Sushil Shinde Date: Thu, 18 Apr 2019 16:53:53 +0530 Subject: [PATCH 3/3] npm version upgrade --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 81ca7761..3bd6da7c 100644 --- a/package.json +++ b/package.json @@ -31,7 +31,7 @@ "lint:js": "./node_modules/.bin/eslint --ext .js,.jsx .", "test": "npm run lint && npm run jest" }, - "version": "0.7.9", + "version": "0.7.10", "dependencies": { "auth0-js": "^6.8.4", "isomorphic-fetch": "^2.2.1",