Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import { takeLatest, call, put } from "redux-saga/effects";
- import { infoRequest, infoSuccess, infoFailure } from "./state";
- import { getUserInfo } from "http/private";
- function* handleUserInfo(action) {
- try {
- const response = yield call(getUserInfo); // chama a função que faz chamada de api e retorna dados do usuario
- const payload = {
- info: {
- ...response.data,
- },
- };
- yield put(infoSuccess(payload)); // despacha a ação infoSuccess
- } catch (e) {
- // caso ocorra erro com a chamada de api (cod 401, 403 etc) ou n consiga se comunicar
- // da erro e despacha uma ação de falha
- yield put(
- infoFailure({
- failureMessage: "failed to get user info.",
- })
- );
- }
- }
- export default function* userInfoSaga() {
- // ouve toda vez que uma ação infoRequest for despachada
- // a ação contendo type e payload é passada como
- // argumento pro manipulador handleUserInfo
- yield takeLatest(infoRequest, handleUserInfo);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement