106 lines
3.2 KiB
JavaScript
106 lines
3.2 KiB
JavaScript
import { effects } from "redux-saga";
|
|
import {
|
|
isSendingEmployeeRequest,
|
|
setEmployeeRequestError,
|
|
setEmployeeRequestSuccess,
|
|
clearEmployeeRequestError,
|
|
clearEmployeeRequestSuccess,
|
|
setEmployeeUUID,
|
|
setFormEmployeeEmail,
|
|
setFormEmployeeNote
|
|
} from "../actions/employee/reducer.actions";
|
|
import { getSelfUserRequest } from "../actions/user/saga.actions";
|
|
import {
|
|
addEmployee,
|
|
getEmployee,
|
|
deleteEmployee,
|
|
updateEmployee
|
|
} from "../api/employee.api";
|
|
|
|
function* addEmployeeCall(postBody) {
|
|
yield effects.put(isSendingEmployeeRequest(true));
|
|
const { provider_email, note } = postBody;
|
|
try {
|
|
return yield effects.call(addEmployee, provider_email, note);
|
|
} catch (exception) {
|
|
yield effects.put(setEmployeeRequestError(exception));
|
|
return false;
|
|
} finally {
|
|
yield effects.put(isSendingEmployeeRequest(false));
|
|
}
|
|
}
|
|
|
|
function* readEmployeeCall(uuid) {
|
|
yield effects.put(isSendingEmployeeRequest(true));
|
|
try {
|
|
return yield effects.call(getEmployee, uuid);
|
|
} catch (exception) {
|
|
yield effects.put(setEmployeeRequestError(exception));
|
|
return false;
|
|
} finally {
|
|
yield effects.put(isSendingEmployeeRequest(false));
|
|
}
|
|
}
|
|
|
|
function* updateEmployeeCall(payload) {
|
|
yield effects.put(isSendingEmployeeRequest(true));
|
|
const { uuid, provider_email, note } = payload;
|
|
try {
|
|
return yield effects.call(updateEmployee, uuid, provider_email, note);
|
|
} catch (exception) {
|
|
yield effects.put(setEmployeeRequestError(exception));
|
|
return false;
|
|
} finally {
|
|
yield effects.put(isSendingEmployeeRequest(false));
|
|
}
|
|
}
|
|
|
|
function* deleteEmployeeCall(uuid) {
|
|
yield effects.put(isSendingEmployeeRequest(true));
|
|
try {
|
|
return yield effects.call(deleteEmployee, uuid);
|
|
} catch (exception) {
|
|
yield effects.put(setEmployeeRequestError(exception));
|
|
return false;
|
|
} finally {
|
|
yield effects.put(isSendingEmployeeRequest(false));
|
|
}
|
|
}
|
|
|
|
export function* addEmployeeFlow(request) {
|
|
yield effects.put(clearEmployeeRequestSuccess());
|
|
yield effects.put(clearEmployeeRequestError());
|
|
const wasSuccessful = yield effects.call(addEmployeeCall, request.data);
|
|
if (wasSuccessful) {
|
|
yield effects.put(getSelfUserRequest());
|
|
yield effects.put(setEmployeeRequestSuccess(wasSuccessful));
|
|
yield effects.put(setFormEmployeeEmail(""));
|
|
yield effects.put(setFormEmployeeNote(""));
|
|
yield effects.put(clearEmployeeRequestError());
|
|
}
|
|
}
|
|
|
|
export function* readEmployeeFlow(request) {
|
|
const wasSuccessful = yield effects.call(readEmployeeCall, request.data);
|
|
if (wasSuccessful) {
|
|
yield effects.put(setEmployeeUUID(wasSuccessful.uuid));
|
|
yield effects.put(setFormEmployeeEmail(wasSuccessful.provider_email));
|
|
yield effects.put(setFormEmployeeNote(wasSuccessful.note));
|
|
}
|
|
}
|
|
|
|
export function* updateEmployeeFlow(request) {
|
|
yield effects.put(clearEmployeeRequestSuccess());
|
|
yield effects.put(clearEmployeeRequestError());
|
|
const wasSuccessful = yield effects.call(updateEmployeeCall, request.data);
|
|
if (wasSuccessful) {
|
|
yield effects.put(getSelfUserRequest());
|
|
yield effects.put(setEmployeeRequestSuccess(wasSuccessful));
|
|
}
|
|
}
|
|
|
|
export function* deleteEmployeeFlow(request) {
|
|
yield effects.call(deleteEmployeeCall, request.data);
|
|
yield effects.put(getSelfUserRequest());
|
|
}
|