Advertisement
Guest User

Untitled

a guest
Aug 20th, 2019
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import { takeLatest, call, put } from "redux-saga/effects";
  2. import { infoRequest, infoSuccess, infoFailure } from "./state";
  3. import { getUserInfo } from "http/private";
  4.  
  5. function* handleUserInfo(action) {
  6.   try {
  7.     const response = yield call(getUserInfo); // chama a função que faz chamada de api e retorna dados do usuario
  8.     const payload = {
  9.       info: {
  10.         ...response.data,
  11.       },
  12.     };
  13.  
  14.     yield put(infoSuccess(payload)); // despacha a ação infoSuccess
  15.   } catch (e) {
  16.  
  17.     // caso ocorra erro com a chamada de api (cod 401, 403 etc) ou n consiga se comunicar
  18.     // da erro e despacha uma ação de falha
  19.     yield put(
  20.       infoFailure({
  21.         failureMessage: "failed to get user info.",
  22.       })
  23.     );
  24.   }
  25. }
  26.  
  27. export default function* userInfoSaga() {
  28.   // ouve toda vez que uma ação infoRequest for despachada
  29.   // a ação contendo type e payload é passada como
  30.   // argumento pro manipulador handleUserInfo
  31.   yield takeLatest(infoRequest, handleUserInfo);
  32. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement