61 lines
1.5 KiB
JavaScript
61 lines
1.5 KiB
JavaScript
![]() |
import { call, put, takeEvery } from 'redux-saga/effects';
|
||
|
import { createFlashMessage } from '../components/Flash/redux';
|
||
|
import { postWebhookToken, deleteWebhookToken } from '../utils/ajax';
|
||
|
import { postWebhookTokenComplete, deleteWebhookTokenComplete } from '.';
|
||
|
|
||
|
const message = {
|
||
|
created: {
|
||
|
type: 'success',
|
||
|
message: 'flash.token-created'
|
||
|
},
|
||
|
createErr: {
|
||
|
type: 'danger',
|
||
|
message: 'flash.create-token-err'
|
||
|
},
|
||
|
deleted: {
|
||
|
type: 'info',
|
||
|
message: 'flash.token-deleted'
|
||
|
},
|
||
|
deleteErr: {
|
||
|
type: 'danger',
|
||
|
message: 'flash.delete-token-err'
|
||
|
}
|
||
|
};
|
||
|
|
||
|
function* postWebhookTokenSaga() {
|
||
|
try {
|
||
|
const response = yield call(postWebhookToken);
|
||
|
|
||
|
if (response?.message) {
|
||
|
yield put(createFlashMessage(response));
|
||
|
} else {
|
||
|
yield put(postWebhookTokenComplete(response));
|
||
|
yield put(createFlashMessage(message.created));
|
||
|
}
|
||
|
} catch (e) {
|
||
|
yield put(createFlashMessage(message.createErr));
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function* deleteWebhookTokenSaga() {
|
||
|
try {
|
||
|
const response = yield call(deleteWebhookToken);
|
||
|
|
||
|
if (response?.message) {
|
||
|
yield put(createFlashMessage(response));
|
||
|
} else {
|
||
|
yield put(deleteWebhookTokenComplete());
|
||
|
yield put(createFlashMessage(message.deleted));
|
||
|
}
|
||
|
} catch (e) {
|
||
|
yield put(createFlashMessage(message.deleteErr));
|
||
|
}
|
||
|
}
|
||
|
|
||
|
export function createWebhookSaga(types) {
|
||
|
return [
|
||
|
takeEvery(types.postWebhookToken, postWebhookTokenSaga),
|
||
|
takeEvery(types.deleteWebhookToken, deleteWebhookTokenSaga)
|
||
|
];
|
||
|
}
|