Redux-Saga Service Wrapper is an approach that allows you to manage your services with only one Saga and call separate action accordingly, the rest is under your control! Perform anything you want.
Yes, you can use serviceWrapperSaga for your all service calls and manage your response for error and success cases. We use Map object for handling errors.
export const endpoints = {
filter: () => `anyServicePath`
}
export const getService: () => Promise<GetServiceResponse> = () => axios.get(endpoints.filter());
export const postService: (body: any) => Promise<PostServiceResponse> = (body: any) => axios.post(endpoints.filter(), body);
function* getServiceSaga({ searchQuery }) {
try {
const { filter } = yield serviceWrapperSaga(getService)
//....
} catch (e) {
console.log(e);
}
}
function* postServiceSaga({ searchQuery }) {
try {
const { filter } = yield serviceWrapperSaga(postService, {test: 'TEST'})
//....
} catch (e) {
console.log(e);
}
}
Loading .. ;)