feat(about): Submit new 'about' settings

This commit is contained in:
Bouncey
2018-09-14 13:18:31 +01:00
committed by Stuart Taylor
parent 68cdeea6ae
commit a41ef09932
7 changed files with 174 additions and 140 deletions

View File

@@ -4,13 +4,38 @@ import { call, put, takeLatest } from 'redux-saga/effects';
import {
validateUsernameComplete,
validateUsernameError,
submitNewAboutComplete,
submitNewAboutError,
submitNewUsernameComplete,
submitNewUsernameError
} from './';
import { getUsernameExists, putUpdateMyUsername } from '../../utils/ajax';
import {
getUsernameExists,
putUpdateMyAbout,
putUpdateMyUsername
} from '../../utils/ajax';
import { createFlashMessage } from '../../components/Flash/redux';
function* submitNewAboutSaga({ payload }) {
try {
const { data: response } = yield call(putUpdateMyAbout, payload);
yield put(submitNewAboutComplete({ ...response, payload }));
yield put(createFlashMessage(response));
} catch (e) {
yield put(submitNewAboutError(e));
}
}
function* submitNewUsernameSaga({ payload: username }) {
try {
const { data: response } = yield call(putUpdateMyUsername, username);
yield put(submitNewUsernameComplete({ ...response, username }));
yield put(createFlashMessage(response));
} catch (e) {
yield put(submitNewUsernameError(e));
}
}
function* validateUsernameSaga({ payload }) {
try {
yield delay(500);
@@ -23,19 +48,10 @@ function* validateUsernameSaga({ payload }) {
}
}
function* submitNEwUswernameSaga({ payload: username }) {
try {
const { data: response } = yield call(putUpdateMyUsername, username);
yield put(submitNewUsernameComplete({...response, username}));
yield put(createFlashMessage(response));
} catch (e) {
yield put(submitNewUsernameError(e));
}
}
export function createSettingsSagas(types) {
return [
takeLatest(types.validateUsername, validateUsernameSaga),
takeLatest(types.submitNewUsername, submitNEwUswernameSaga)
takeLatest(types.submitNewAbout, submitNewAboutSaga),
takeLatest(types.submitNewUsername, submitNewUsernameSaga),
takeLatest(types.validateUsername, validateUsernameSaga)
];
}