feat(certs): Claim Certs

This commit is contained in:
Bouncey
2018-09-25 12:51:17 +01:00
committed by Stuart Taylor
parent d698d52794
commit 87837f480d
9 changed files with 309 additions and 92 deletions

View File

@@ -174,6 +174,8 @@ export const reducer = handleActions(
[settingsTypes.updateMyEmailComplete]: (state, { payload }) =>
payload ? spreadThePayloadOnUser(state, payload) : state,
[settingsTypes.updateUserFlagComplete]: (state, { payload }) =>
payload ? spreadThePayloadOnUser(state, payload) : state,
[settingsTypes.verifyCertComplete]: (state, { payload }) =>
payload ? spreadThePayloadOnUser(state, payload) : state
},
initialState

View File

@@ -27,7 +27,8 @@ export const types = createTypes(
...createAsyncTypes('submitNewUsername'),
...createAsyncTypes('updateMyEmail'),
...createAsyncTypes('updateUserFlag'),
...createAsyncTypes('submitProfileUI')
...createAsyncTypes('submitProfileUI'),
...createAsyncTypes('verifyCert')
],
ns
);
@@ -80,6 +81,13 @@ export const validateUsernameComplete = createAction(
);
export const validateUsernameError = createAction(types.validateUsernameError);
export const verifyCert = createAction(types.verifyCert);
export const verifyCertComplete = createAction(
types.verifyCertComplete,
checkForSuccessPayload
);
export const verifyCertError = createAction(types.verifyCertError);
export const usernameValidationSelector = state => state[ns].usernameValidation;
export const reducer = handleActions(

View File

@@ -11,14 +11,17 @@ import {
submitNewUsernameComplete,
submitNewUsernameError,
submitProfileUIComplete,
submitProfileUIError
submitProfileUIError,
verifyCertComplete,
verifyCertError
} from './';
import {
getUsernameExists,
putUpdateMyAbout,
putUpdateMyProfileUI,
putUpdateMyUsername,
putUpdateUserFlag
putUpdateUserFlag,
putVerifyCert
} from '../../utils/ajax';
import { createFlashMessage } from '../../components/Flash/redux';
@@ -74,12 +77,25 @@ function* validateUsernameSaga({ payload }) {
}
}
function* verifyCertificationSaga({ payload }) {
try {
const {
data: { response, isCertMap }
} = yield call(putVerifyCert, payload);
yield put(verifyCertComplete({ ...response, payload: isCertMap }));
yield put(createFlashMessage(response));
} catch (e) {
yield put(verifyCertError(e));
}
}
export function createSettingsSagas(types) {
return [
takeEvery(types.updateUserFlag, updateUserFlagSaga),
takeLatest(types.submitNewAbout, submitNewAboutSaga),
takeLatest(types.submitNewUsername, submitNewUsernameSaga),
takeLatest(types.validateUsername, validateUsernameSaga),
takeLatest(types.submitProfileUI, sumbitProfileUISaga)
takeLatest(types.submitProfileUI, sumbitProfileUISaga),
takeEvery(types.verifyCert, verifyCertificationSaga)
];
}