Completed Login/Logout/Protected Routes
This commit is contained in:
@@ -12,9 +12,15 @@ import {
|
||||
setFormEmail,
|
||||
setFormPassword,
|
||||
setFormPasswordConfirmation,
|
||||
setFormEmailVerification
|
||||
setFormEmailVerification,
|
||||
setSelfUserToken
|
||||
} from "../actions/auth/reducer.actions";
|
||||
import { registerUser, verifyEmail } from "../api/auth.api";
|
||||
import {
|
||||
registerUser,
|
||||
verifyEmail,
|
||||
loginUser,
|
||||
logoutUser
|
||||
} from "../api/auth.api";
|
||||
|
||||
function* registerUserCall(postBody) {
|
||||
yield effects.put(isSendingAuthRequest(true));
|
||||
@@ -42,12 +48,29 @@ function* verifyEmailCall(postBody) {
|
||||
}
|
||||
}
|
||||
|
||||
function* loginUserCall(postBody) {
|
||||
yield effects.put(isSendingAuthRequest(true));
|
||||
const { email, password } = postBody;
|
||||
try {
|
||||
return yield effects.call(loginUser, email, password);
|
||||
} catch (exception) {
|
||||
yield effects.put(setAuthRequestError(exception));
|
||||
return false;
|
||||
} finally {
|
||||
yield effects.put(isSendingAuthRequest(false));
|
||||
}
|
||||
}
|
||||
|
||||
function* logoutUserCall() {
|
||||
yield effects.call(logoutUser);
|
||||
}
|
||||
|
||||
export function* registerUserFlow(request) {
|
||||
yield effects.put(clearAuthRequestSuccess());
|
||||
yield effects.put(clearAuthRequestError());
|
||||
const wasSucessful = yield effects.call(registerUserCall, request.data);
|
||||
if (wasSucessful) {
|
||||
yield effects.put(setAuthRequestSuccess(wasSucessful));
|
||||
const wasSuccessful = yield effects.call(registerUserCall, request.data);
|
||||
if (wasSuccessful) {
|
||||
yield effects.put(setAuthRequestSuccess(wasSuccessful));
|
||||
yield effects.put(clearAuthRequestError());
|
||||
yield effects.put(setFormEmail(""));
|
||||
yield effects.put(setFormPassword(""));
|
||||
@@ -58,10 +81,31 @@ export function* registerUserFlow(request) {
|
||||
export function* verifyEmailFlow(request) {
|
||||
yield effects.put(clearEmailVerificationSuccess());
|
||||
yield effects.put(clearEmailVerificationError());
|
||||
const wasSucessful = yield effects.call(verifyEmailCall, request.data);
|
||||
if (wasSucessful) {
|
||||
yield effects.put(setEmailVerificationSuccess(wasSucessful));
|
||||
const wasSuccessful = yield effects.call(verifyEmailCall, request.data);
|
||||
if (wasSuccessful) {
|
||||
yield effects.put(setEmailVerificationSuccess(wasSuccessful));
|
||||
yield effects.put(clearEmailVerificationError());
|
||||
yield effects.put(setFormEmailVerification(""));
|
||||
}
|
||||
}
|
||||
|
||||
export function* loginUserFlow(request) {
|
||||
yield effects.put(clearAuthRequestSuccess());
|
||||
yield effects.put(clearAuthRequestError());
|
||||
const wasSuccessful = yield effects.call(loginUserCall, request.data);
|
||||
if (wasSuccessful) {
|
||||
yield effects.put(setSelfUserToken(wasSuccessful.key));
|
||||
yield effects.put(setAuthRequestSuccess(wasSuccessful));
|
||||
yield effects.put(clearAuthRequestError());
|
||||
yield effects.put(setFormEmail(""));
|
||||
yield effects.put(setFormPassword(""));
|
||||
yield effects.put(setFormPasswordConfirmation(""));
|
||||
}
|
||||
}
|
||||
|
||||
export function* logoutUserFlow(request) {
|
||||
yield effects.put(clearAuthRequestSuccess());
|
||||
yield effects.put(clearAuthRequestError());
|
||||
yield effects.call(logoutUserCall);
|
||||
yield effects.put(setSelfUserToken(""));
|
||||
}
|
||||
|
||||
@@ -1,8 +1,20 @@
|
||||
import { takeLatest } from "redux-saga/effects";
|
||||
import { SEND_REGISTER_REQUEST, SEND_EMAIL_VERIFICATION_REQUEST } from "../constants/auth.constants";
|
||||
import { registerUserFlow, verifyEmailFlow } from "./auth.sagas";
|
||||
import {
|
||||
SEND_REGISTER_REQUEST,
|
||||
SEND_EMAIL_VERIFICATION_REQUEST,
|
||||
SEND_LOGIN_REQUEST,
|
||||
SEND_LOGOUT_REQUEST
|
||||
} from "../constants/auth.constants";
|
||||
import {
|
||||
registerUserFlow,
|
||||
verifyEmailFlow,
|
||||
loginUserFlow,
|
||||
logoutUserFlow
|
||||
} from "./auth.sagas";
|
||||
|
||||
export default function* rootSaga() {
|
||||
yield takeLatest(SEND_REGISTER_REQUEST, registerUserFlow);
|
||||
yield takeLatest(SEND_EMAIL_VERIFICATION_REQUEST, verifyEmailFlow);
|
||||
yield takeLatest(SEND_LOGIN_REQUEST, loginUserFlow);
|
||||
yield takeLatest(SEND_LOGOUT_REQUEST, logoutUserFlow);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user