Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import { all, call, put, takeLatest } from "@redux-saga/core/effects";
  2. import { attemptAuthProvider } from "../../request/loginRequest";
  3. import {
  4. fetchUserError,
  5. fetchUserSuccess,
  6. } from "../actions/login/loginActions";
  7. import { setUser } from "../actions/user/userActions";
  8. import { addHeaderToken } from "../../request";
  9. import { ACCESS_TOKEN, JWT_REFRESH_TOKEN, JWT_TOKEN } from "../../constants/localStorage";
  10. import { storeData } from "../../service/asyncStorage";
  11. import { rejectErrorCodeHelper } from "../../utils/rejectErrorMessageHelper";
  12. import { AUTH_PROVIDER_FETCH } from "../actions/authProvider/authProviderActionConstants";
  13. import {
  14. fetchAuthProviderError,
  15. fetchAuthProviderSuccess,
  16. } from "../actions/authProvider/authProviderActions";
  17. function* fetchAuthProvider({ payload }) {
  18. try {
  19. const { data } = yield call(attemptAuthProvider, payload.accessToken);
  20. if (data?.jwt) {
  21. const user = data?.user;
  22. yield call(storeData, JWT_TOKEN, data.jwt);
  23. yield call(storeData, JWT_REFRESH_TOKEN, data?.refreshToken);
  24. yield call(storeData, ACCESS_TOKEN, payload.accessToken);
  25. yield call(addHeaderToken, data?.jwt);
  26. yield put(setUser(user));
  27. }
  28. yield put(fetchUserSuccess(data));
  29. yield put(fetchAuthProviderSuccess("Success"));
  30. } catch (e) {
  31. if (e.response && e.response.data) {
  32. const errorMessage = yield call(rejectErrorCodeHelper, e);
  33. yield put(fetchUserError(errorMessage));
  34. yield put(fetchAuthProviderError('Error'));
  35. }
  36. }
  37. }
  38. export default function* authProviderSaga() {
  39. yield all([takeLatest(AUTH_PROVIDER_FETCH, fetchAuthProvider)]);
  40. }