import { effects } from "redux-saga"; import { isSendingAuthRequest, setAuthRequestError, setAuthRequestSuccess, clearAuthRequestError, setFormEmail, setFormPassword, setFormPasswordConfirmation } from "../actions/auth/reducer.actions"; import { registerUser } from "../api/auth.api"; /** * Saga for registering a new user. * @param {*} postBody */ function* registerUserCall(postBody) { yield effects.put(isSendingAuthRequest(true)); const { email, password1, password2 } = postBody; try { return yield effects.call(registerUser, email, password1, password2); } catch (exception) { yield effects.put(setAuthRequestError(exception)); return false; } finally { yield effects.put(isSendingAuthRequest(false)); } } export function* registerUserFlow(request) { const wasSucessful = yield effects.call(registerUserCall, request.data); if (wasSucessful) { yield effects.put(setAuthRequestSuccess(wasSucessful)); yield effects.put(clearAuthRequestError()); yield effects.put(setFormEmail("")); yield effects.put(setFormPassword("")); yield effects.put(setFormPasswordConfirmation("")); } }