Files
freeCodeCamp/client/src/redux/accept-terms-saga.js
2018-09-03 17:47:48 +05:30

30 lines
811 B
JavaScript

import { call, put, takeEvery } from 'redux-saga/effects';
import { navigateTo } from 'gatsby';
import { acceptTermsComplete, acceptTermsError } from './';
import { createFlashMessage } from '../components/Flash/redux';
import { putUserAcceptsTerms } from '../utils/ajax';
function* acceptTermsSaga({ payload: quincyEmails }) {
try {
const { data: response } = yield call(putUserAcceptsTerms, quincyEmails);
yield put(acceptTermsComplete());
yield put(createFlashMessage(response));
} catch (e) {
yield put(acceptTermsError(e));
}
}
function* acceptCompleteSaga() {
yield call(navigateTo, '/welcome');
}
export function createAcceptTermsSaga(types) {
return [
takeEvery(types.acceptTerms, acceptTermsSaga),
takeEvery(types.acceptTermsComplete, acceptCompleteSaga)
];
}