rudamentary mutli-post err handling
This commit is contained in:
61
src/sagas/cShift.sagas.js
Normal file
61
src/sagas/cShift.sagas.js
Normal file
@@ -0,0 +1,61 @@
|
||||
import { effects } from "redux-saga";
|
||||
import {
|
||||
isSendingCShiftRequest,
|
||||
setCShiftRequestError,
|
||||
setCShiftRequestErrors,
|
||||
setCShiftRequestSuccess,
|
||||
clearCShiftRequestError,
|
||||
clearCShiftRequestSuccess,
|
||||
setFormEmployeeUUID,
|
||||
setFormPriceUUID,
|
||||
setFormShiftDates,
|
||||
setFormShiftDuration,
|
||||
setFormShiftNote,
|
||||
setFormShiftStartTime
|
||||
} from "../actions/cShift/reducer.actions";
|
||||
import { createCShifts } from "../api/cShift.api";
|
||||
|
||||
function* createCShiftsCall(postBodies) {
|
||||
yield effects.put(isSendingCShiftRequest(true));
|
||||
try {
|
||||
if (postBodies.length > 0) {
|
||||
return yield effects.call(createCShifts, postBodies);
|
||||
} else {
|
||||
yield effects.put(
|
||||
setCShiftRequestError({
|
||||
response: { data: { dates: ["No dates selected."] } }
|
||||
})
|
||||
);
|
||||
return false;
|
||||
}
|
||||
} catch (exception) {
|
||||
yield effects.put(setCShiftRequestError(exception));
|
||||
return false;
|
||||
} finally {
|
||||
yield effects.put(isSendingCShiftRequest(false));
|
||||
}
|
||||
}
|
||||
|
||||
export function* createCShiftsFlow(request) {
|
||||
yield effects.put(clearCShiftRequestSuccess());
|
||||
yield effects.put(clearCShiftRequestError());
|
||||
const arrResponses = yield effects.call(createCShiftsCall, request.data);
|
||||
console.log(arrResponses);
|
||||
if (arrResponses) {
|
||||
const errorResps = arrResponses.filter(resp => !!resp.error);
|
||||
if (errorResps.length > 0) {
|
||||
console.log(arrResponses);
|
||||
yield effects.put(setCShiftRequestErrors(errorResps));
|
||||
}
|
||||
const succResps = arrResponses.filter(resp => !resp.error);
|
||||
if (succResps.length > 0) {
|
||||
yield effects.put(setCShiftRequestSuccess(succResps));
|
||||
yield effects.put(setFormEmployeeUUID(""));
|
||||
yield effects.put(setFormPriceUUID(""));
|
||||
yield effects.put(setFormShiftStartTime(null));
|
||||
yield effects.put(setFormShiftDuration(""));
|
||||
yield effects.put(setFormShiftNote(""));
|
||||
yield effects.put(setFormShiftDates({}));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -69,6 +69,8 @@ import {
|
||||
updatePriceFlow,
|
||||
deletePriceFlow
|
||||
} from "./price.sagas";
|
||||
import { CREATE_MULTIPLE_CSHIFT_REQUEST } from "../constants/cShift.constants";
|
||||
import { createCShiftsFlow } from "./cShift.sagas";
|
||||
|
||||
export default function* rootSaga() {
|
||||
yield takeLatest(SEND_REGISTER_REQUEST, registerUserFlow);
|
||||
@@ -96,4 +98,5 @@ export default function* rootSaga() {
|
||||
yield takeLatest(CREATE_PRICE_REQUEST, createPriceFlow);
|
||||
yield takeLatest(UPDATE_PRICE_REQUEST, updatePriceFlow);
|
||||
yield takeLatest(DELETE_PRICE_REQUEST, deletePriceFlow);
|
||||
yield takeLatest(CREATE_MULTIPLE_CSHIFT_REQUEST, createCShiftsFlow);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user