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