mirror of
https://github.com/ClaytonWWilson/CS307-Team24.git
synced 2026-03-11 05:35:05 +00:00
Merge branch 'master' into dms
This commit is contained in:
@@ -1,18 +1,36 @@
|
||||
import {SET_USER, SET_ERRORS, CLEAR_ERRORS, LOADING_UI, SET_AUTHENTICATED, SET_UNAUTHENTICATED} from '../types';
|
||||
import {
|
||||
SET_USER,
|
||||
SET_ERRORS,
|
||||
CLEAR_ERRORS,
|
||||
LOADING_UI,
|
||||
// SET_AUTHENTICATED,
|
||||
SET_UNAUTHENTICATED,
|
||||
LOADING_USER
|
||||
} from '../types';
|
||||
import axios from 'axios';
|
||||
|
||||
// Saves Authorization in browser local storage and adds it as a header to axios
|
||||
const setAuthorizationHeader = (token) => {
|
||||
const FBIdToken = `Bearer ${token}`;
|
||||
localStorage.setItem('FBIdToken', FBIdToken);
|
||||
axios.defaults.headers.common['Authorization'] = FBIdToken;
|
||||
}
|
||||
|
||||
// Gets Database info for the logged in user and sets it in Redux
|
||||
export const getUserData = () => (dispatch) => {
|
||||
dispatch({ type: LOADING_USER });
|
||||
axios.get('/user')
|
||||
.then((res) => {
|
||||
dispatch({
|
||||
type: SET_USER,
|
||||
payload: res.data,
|
||||
})
|
||||
});
|
||||
dispatch({type: CLEAR_ERRORS});
|
||||
})
|
||||
.catch((err) => console.error(err));
|
||||
}
|
||||
|
||||
// Sends login data to firebase and sets the user data in Redux
|
||||
export const loginUser = (loginData, history) => (dispatch) => {
|
||||
dispatch({ type: LOADING_UI });
|
||||
axios
|
||||
@@ -21,7 +39,7 @@ export const loginUser = (loginData, history) => (dispatch) => {
|
||||
// Save the login token
|
||||
setAuthorizationHeader(res.data.token);
|
||||
dispatch(getUserData());
|
||||
dispatch({ type: CLEAR_ERRORS })
|
||||
// dispatch({ type: CLEAR_ERRORS })
|
||||
// Redirects to home page
|
||||
history.push('/home');
|
||||
})
|
||||
@@ -33,6 +51,7 @@ export const loginUser = (loginData, history) => (dispatch) => {
|
||||
});
|
||||
};
|
||||
|
||||
// Sends signup data to firebase and sets the user data in Redux
|
||||
export const signupUser = (newUserData, history) => (dispatch) => {
|
||||
dispatch({ type: LOADING_UI });
|
||||
axios
|
||||
@@ -43,7 +62,7 @@ export const signupUser = (newUserData, history) => (dispatch) => {
|
||||
// Save the signup token
|
||||
setAuthorizationHeader(res.data.token);
|
||||
dispatch(getUserData());
|
||||
dispatch({ type: CLEAR_ERRORS })
|
||||
// dispatch({ type: CLEAR_ERRORS })
|
||||
// Redirects to home page
|
||||
history.push('/home');
|
||||
})
|
||||
@@ -55,12 +74,14 @@ export const signupUser = (newUserData, history) => (dispatch) => {
|
||||
});
|
||||
};
|
||||
|
||||
// Deletes the Authorization header and clears all user data from Redux
|
||||
export const logoutUser = () => (dispatch) => {
|
||||
localStorage.removeItem('FBIdToken');
|
||||
delete axios.defaults.headers.common['Authorization'];
|
||||
dispatch({ type: SET_UNAUTHENTICATED });
|
||||
}
|
||||
|
||||
|
||||
export const deleteUser = () => (dispatch) => {
|
||||
axios
|
||||
.delete("/delete")
|
||||
@@ -81,8 +102,15 @@ export const deleteUser = () => (dispatch) => {
|
||||
dispatch({ type: SET_UNAUTHENTICATED });
|
||||
}
|
||||
|
||||
const setAuthorizationHeader = (token) => {
|
||||
const FBIdToken = `Bearer ${token}`;
|
||||
localStorage.setItem('FBIdToken', FBIdToken);
|
||||
axios.defaults.headers.common['Authorization'] = FBIdToken;
|
||||
}
|
||||
// Sends an image data form to firebase to be uploaded to the user profile
|
||||
export const uploadImage = (formData) => (dispatch) => {
|
||||
dispatch({ type: LOADING_UI });
|
||||
axios.post('/user/image', formData)
|
||||
.then(() => {
|
||||
dispatch(getUserData());
|
||||
// dispatch({ type: CLEAR_ERRORS });
|
||||
})
|
||||
.catch(err => {
|
||||
console.log(err);
|
||||
})
|
||||
}
|
||||
|
||||
@@ -1,4 +1,12 @@
|
||||
import {SET_USER, SET_ERRORS, CLEAR_ERRORS, LOADING_UI, SET_AUTHENTICATED, SET_UNAUTHENTICATED} from '../types';
|
||||
import {
|
||||
SET_USER,
|
||||
// SET_ERRORS,
|
||||
// CLEAR_ERRORS,
|
||||
// LOADING_UI,
|
||||
SET_AUTHENTICATED,
|
||||
SET_UNAUTHENTICATED,
|
||||
LOADING_USER
|
||||
} from '../types';
|
||||
|
||||
const initialState = {
|
||||
authenticated: false,
|
||||
@@ -20,8 +28,14 @@ export default function(state = initialState, action) {
|
||||
case SET_USER:
|
||||
return {
|
||||
authenticated: true,
|
||||
loading: false,
|
||||
...action.payload,
|
||||
};
|
||||
case LOADING_USER:
|
||||
return {
|
||||
...state,
|
||||
loading: true
|
||||
}
|
||||
default:
|
||||
return state;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user