rudamentary mutli-post err handling

This commit is contained in:
Alexander Wong
2018-04-22 16:39:17 -06:00
parent 530593b721
commit dac6daa933
9 changed files with 194 additions and 21 deletions

61
src/sagas/cShift.sagas.js Normal file
View 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({}));
}
}
}

View File

@@ -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);
}