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

registerSaga.js 1.1KB

1234567891011121314151617181920212223242526272829303132
  1. import { all, call, put, takeLatest } from "@redux-saga/core/effects";
  2. import { REGISTER_USER_FETCH } from "../actions/register/registerActionConstants";
  3. import { attemptRegister } from "../../request/loginRequest";
  4. import {
  5. registerUserError,
  6. registerUserSuccess,
  7. } from "../actions/register/registerActions";
  8. import { JWT_TOKEN } from "../../constants/localStorage";
  9. import { storeData } from "../../service/asyncStorage";
  10. import { rejectErrorCodeHelper } from "../../utils/rejectErrorMessageHelper";
  11. function* registerUser({ payload }) {
  12. try {
  13. const { data } = yield call(attemptRegister, payload);
  14. if (data?.jwt) {
  15. yield call(storeData, JWT_TOKEN, data.jwt);
  16. }
  17. yield put(registerUserSuccess(data.jwt));
  18. if (payload.handleApiResponseSuccess) {
  19. yield call(payload.handleApiResponseSuccess);
  20. }
  21. } catch (e) {
  22. if (e.response && e.response.data) {
  23. const errorMessage = yield call(rejectErrorCodeHelper, e);
  24. yield put(registerUserError(errorMessage));
  25. }
  26. }
  27. }
  28. export default function* registerSaga() {
  29. yield all([takeLatest(REGISTER_USER_FETCH, registerUser)]);
  30. }