Files
freeCodeCamp/client/src/redux/webhook-saga.js
Shaun Hamilton 23e241bbc0 chore(client): tidy Flash by tidying tone (#44320)
* chore(client): tidy Flash by tidying tone

* add store import

* fix enum, remove default switch case

Co-authored-by: Nicholas Carrigan <nhcarrigan@gmail.com>

* typo galore

Co-authored-by: Nicholas Carrigan (he/him) <nhcarrigan@gmail.com>

* rejig everything, because refactoring is fun 🙃

* refactor: DRY playTone

* fix url to foss library

Co-authored-by: Nicholas Carrigan <nhcarrigan@gmail.com>

* alphabetasize FlashMessage enum

* add all FlashMessages to tone/index.ts

* remove redundant type

* my code is correctnpm run develop:client

* fix: remove circular dependency

* fix: typo

* remove logs, play special tones for nightmode

* play sound on challengeComplete

Co-authored-by: Nicholas Carrigan (he/him) <nhcarrigan@gmail.com>

Co-authored-by: Nicholas Carrigan <nhcarrigan@gmail.com>
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
2021-12-01 10:45:17 -08:00

62 lines
1.6 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 { postWebhookToken, deleteWebhookToken } from '../utils/ajax';
import { postWebhookTokenComplete, deleteWebhookTokenComplete } from '.';
const message = {
created: {
type: 'success',
message: FlashMessages.TokenCreated
},
createErr: {
type: 'danger',
message: FlashMessages.CreateTokenErr
},
deleted: {
type: 'info',
message: FlashMessages.TokenDeleted
},
deleteErr: {
type: 'danger',
message: FlashMessages.DeleteTokenErr
}
};
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)
];
}