Viewing File: /home/ubuntu/voice-assistant-frontend/src/store/saga/GeneratedSaga.jsx
import { call, select, put, takeLatest, all } from "redux-saga/effects";
import { getCommonSaga } from "../sagaUtils";
import store from "../index";
import {
generatedVoiceListSuccess,
generatedVoiceListFailure,
generatedVoiceStoreSuccess,
generatedVoiceStoreFailure,
generatedVoiceDeleteSuccess,
generatedVoiceDeleteFailure,
generatedVoiceDetailsSuccess,
generatedVoiceDetailsFailure,
generatedVoiceStatusSuccess,
generatedVoiceStatusFailure,
} from "../slices/GeneratedSlice";
function* generatedVoiceListAPI(action) {
yield getCommonSaga({
apiUrl: "generated_voices",
payload: action.payload,
successNotify: false,
success: generatedVoiceListSuccess,
failure: generatedVoiceListFailure,
});
}
function* generatedVoiceStoreAPI(action) {
yield getCommonSaga({
apiUrl: "generated_voices/store",
payload: action.payload,
successNotify: true,
success: generatedVoiceStoreSuccess,
failure: generatedVoiceStoreFailure,
});
}
function* generatedVoiceDeleteAPI(action) {
const generatedVoiceListData = yield select(state => state.generated.generatedVoiceList.data);
yield getCommonSaga({
apiUrl: "generated_voices/destroy",
payload: action.payload,
successCallback: true,
success: data => {
store.dispatch(generatedVoiceDeleteSuccess(data));
if(Object.keys(generatedVoiceListData).length > 0 && generatedVoiceListData.generated_voices) {
store.dispatch(generatedVoiceListSuccess({
...generatedVoiceListData,
generated_voices: generatedVoiceListData.generated_voices.filter(item => item.unique_id != action.payload.generated_voice_unique_id),
total_generated_voices: generatedVoiceListData.total_generated_voices - 1,
}));
}
},
failure: generatedVoiceDeleteFailure,
});
}
function* generatedVoiceDetailsAPI(action) {
yield getCommonSaga({
apiUrl: "generated-voice",
payload: action.payload,
successCallback: true,
success: generatedVoiceDetailsSuccess,
failure: generatedVoiceDetailsFailure,
});
}
function* generatedVoiceStatusAPI(action) {
yield getCommonSaga({
apiUrl: "generated-voice",
payload: action.payload,
successCallback: true,
success: generatedVoiceStatusSuccess,
failure: generatedVoiceStatusFailure,
});
}
export default function* GeneratedSaga() {
yield all([yield takeLatest("generated/generatedVoiceListStart", generatedVoiceListAPI)]);
yield all([yield takeLatest("generated/generatedVoiceStoreStart", generatedVoiceStoreAPI)]);
yield all([yield takeLatest("generated/generatedVoiceDeleteStart", generatedVoiceDeleteAPI)]);
yield all([yield takeLatest("generated/generatedVoiceDetailsStart", generatedVoiceDetailsAPI)]);
yield all([yield takeLatest("generated/generatedVoiceStatusStart", generatedVoiceStatusAPI)]);
}
Back to Directory
File Manager