86 lines
2.5 KiB
JavaScript
86 lines
2.5 KiB
JavaScript
import { effects } from "redux-saga";
|
|
import {
|
|
isSendingPriceRequest,
|
|
setPriceRequestError,
|
|
clearPriceRequestError,
|
|
setPriceRequestSuccess,
|
|
clearPriceRequestSuccess,
|
|
setGetEmployeeUUID,
|
|
setGetWorktypeUUID,
|
|
setFormPriceAmount
|
|
} from "../actions/price/reducer.actions";
|
|
import { getSelfUserRequest } from "../actions/user/saga.actions";
|
|
import { createPrice, updatePrice, deletePrice } from "../api/price.api";
|
|
|
|
function* createPriceCall(postBody) {
|
|
yield effects.put(isSendingPriceRequest(true));
|
|
const { get_employee_uuid, get_work_type_uuid, amount } = postBody;
|
|
try {
|
|
return yield effects.call(
|
|
createPrice,
|
|
get_employee_uuid,
|
|
get_work_type_uuid,
|
|
amount
|
|
);
|
|
} catch (exception) {
|
|
yield effects.put(setPriceRequestError(exception));
|
|
return false;
|
|
} finally {
|
|
yield effects.put(isSendingPriceRequest(false));
|
|
}
|
|
}
|
|
|
|
function* updatePriceCall(payload) {
|
|
yield effects.put(isSendingPriceRequest(true));
|
|
const { uuid, amount } = payload;
|
|
try {
|
|
return yield effects.call(updatePrice, uuid, amount);
|
|
} catch (exception) {
|
|
yield effects.put(setPriceRequestError(exception));
|
|
return false;
|
|
} finally {
|
|
yield effects.put(isSendingPriceRequest(false));
|
|
}
|
|
}
|
|
|
|
function* deletePriceCall(uuid) {
|
|
yield effects.put(isSendingPriceRequest(true));
|
|
try {
|
|
return yield effects.call(deletePrice, uuid);
|
|
} catch (exception) {
|
|
yield effects.put(setPriceRequestError(exception));
|
|
return false;
|
|
} finally {
|
|
yield effects.put(isSendingPriceRequest(false));
|
|
}
|
|
}
|
|
|
|
export function* createPriceFlow(request) {
|
|
yield effects.put(clearPriceRequestSuccess());
|
|
yield effects.put(clearPriceRequestError());
|
|
const wasSuccessful = yield effects.call(createPriceCall, request.data);
|
|
if (wasSuccessful) {
|
|
yield effects.put(getSelfUserRequest());
|
|
yield effects.put(setPriceRequestSuccess(wasSuccessful));
|
|
yield effects.put(setGetEmployeeUUID(""));
|
|
yield effects.put(setGetWorktypeUUID(""));
|
|
yield effects.put(setFormPriceAmount(""));
|
|
yield effects.put(clearPriceRequestError());
|
|
}
|
|
}
|
|
|
|
export function* updatePriceFlow(request) {
|
|
yield effects.put(clearPriceRequestSuccess());
|
|
yield effects.put(clearPriceRequestError());
|
|
const wasSuccessful = yield effects.call(updatePriceCall, request.data);
|
|
if (wasSuccessful) {
|
|
yield effects.put(getSelfUserRequest());
|
|
yield effects.put(setPriceRequestSuccess(wasSuccessful));
|
|
}
|
|
}
|
|
|
|
export function* deletePriceFlow(request) {
|
|
yield effects.call(deletePriceCall, request.data);
|
|
yield effects.put(getSelfUserRequest());
|
|
}
|