39 lines
1.0 KiB
JavaScript
39 lines
1.0 KiB
JavaScript
import { call, put, takeEvery } from 'redux-saga/effects';
|
|
import { createFlashMessage } from '../components/Flash/redux';
|
|
import { FlashMessages } from '../components/Flash/redux/flash-messages';
|
|
import { deleteUserToken } from '../utils/ajax';
|
|
import { deleteUserTokenComplete } from '.';
|
|
|
|
const message = {
|
|
deleted: {
|
|
type: 'info',
|
|
message: FlashMessages.TokenDeleted
|
|
},
|
|
deleteErr: {
|
|
type: 'danger',
|
|
message: FlashMessages.DeleteTokenErr
|
|
}
|
|
};
|
|
|
|
function* deleteUserTokenSaga() {
|
|
try {
|
|
const response = yield call(deleteUserToken);
|
|
|
|
if (
|
|
response &&
|
|
Object.prototype.hasOwnProperty.call(response, 'userToken')
|
|
) {
|
|
yield put(deleteUserTokenComplete());
|
|
yield put(createFlashMessage(message.deleted));
|
|
} else {
|
|
yield put(createFlashMessage(message.deleteErr));
|
|
}
|
|
} catch (e) {
|
|
yield put(createFlashMessage(message.deleteErr));
|
|
}
|
|
}
|
|
|
|
export function createUserTokenSaga(types) {
|
|
return [takeEvery(types.deleteUserToken, deleteUserTokenSaga)];
|
|
}
|