162 lines
3.7 KiB
JavaScript
Executable File
162 lines
3.7 KiB
JavaScript
Executable File
import {setLoginFailed} from "./main";
|
|
import {history} from "../routers/AppRouter"
|
|
import {resetUpload} from "./uploads"
|
|
import axios from "axios";
|
|
import env from "../enviroment/envFrontEnd";
|
|
|
|
const currentURL = env.url;
|
|
|
|
export const login = (id) => ({
|
|
type: "LOGIN",
|
|
id
|
|
})
|
|
|
|
export const logout = () => ({
|
|
type: "LOGOUT"
|
|
})
|
|
|
|
export const startLogin = (email, password, currentRoute) => {
|
|
|
|
return (dispatch) => {
|
|
|
|
const dt = {email, password};
|
|
|
|
axios.post(currentURL+"/user-service/login", dt).then((response) => {
|
|
|
|
const token = response.data.token;
|
|
const id = response.data.user._id;
|
|
|
|
window.localStorage.setItem("token", token);
|
|
|
|
dispatch(setLoginFailed(false))
|
|
dispatch(login(id));
|
|
history.push(currentRoute);
|
|
|
|
}).catch((err) => {
|
|
dispatch(setLoginFailed("Incorrect Email or Password"))
|
|
console.log(err);
|
|
})
|
|
}
|
|
}
|
|
|
|
export const startCreateAccount = (email, password) => {
|
|
|
|
return (dispatch) => {
|
|
|
|
const dt = {email, password};
|
|
axios.post(currentURL+"/user-service/create", dt).then((response) => {
|
|
|
|
const token = response.data.token;
|
|
const id = response.data.user._id;
|
|
|
|
window.localStorage.setItem("token", token);
|
|
|
|
dispatch(setLoginFailed(false))
|
|
dispatch(login(id));
|
|
history.push("/home");
|
|
|
|
}).catch((err) => {
|
|
|
|
console.log(err);
|
|
|
|
if (err.response) {
|
|
|
|
const errStatus = err.response.status;
|
|
|
|
if (errStatus === 401) {
|
|
|
|
dispatch(setLoginFailed("Create Blocked By Admin"))
|
|
|
|
} else {
|
|
|
|
dispatch(setLoginFailed("Duplicate Email, or Invalid Password"))
|
|
}
|
|
|
|
} else {
|
|
|
|
dispatch(setLoginFailed("Duplicate Email, or Invalid Password"))
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
export const startLoginCheck = (token, currentRoute) => {
|
|
|
|
return (dispatch) => {
|
|
|
|
const config = {
|
|
headers: {'Authorization': "Bearer " + token}
|
|
};
|
|
|
|
axios.get(currentURL+"/user-service/user", config).then((response) => {
|
|
|
|
const id = response.data._id;
|
|
|
|
dispatch(setLoginFailed(false))
|
|
dispatch(login(id))
|
|
history.push(currentRoute);
|
|
|
|
}).catch((err) => {
|
|
|
|
console.log("login check error", err);
|
|
window.localStorage.removeItem("token")
|
|
dispatch(setLoginFailed("Login Expired"))
|
|
// history.push("/login")
|
|
})
|
|
}
|
|
}
|
|
|
|
export const startLogoutAll = () => {
|
|
|
|
return (dispatch) => {
|
|
|
|
const token = window.localStorage.getItem("token")
|
|
|
|
const config = {
|
|
headers: {'Authorization': "Bearer " + token}
|
|
};
|
|
|
|
axios.post(currentURL+"/user-service/logout-all", undefined,config).then(() => {
|
|
|
|
window.localStorage.removeItem("token")
|
|
|
|
dispatch(resetUpload())
|
|
dispatch(setLoginFailed(false))
|
|
dispatch(logout())
|
|
|
|
history.push("/")
|
|
|
|
}).catch((err) => {
|
|
console.log(err);
|
|
})
|
|
|
|
}
|
|
|
|
}
|
|
|
|
export const startLogout = () => {
|
|
|
|
return (dispatch) => {
|
|
|
|
const token = window.localStorage.getItem("token")
|
|
|
|
const config = {
|
|
headers: {'Authorization': "Bearer " + token}
|
|
};
|
|
|
|
axios.post(currentURL+"/user-service/logout", undefined,config).then(() => {
|
|
|
|
window.localStorage.removeItem("token")
|
|
|
|
dispatch(resetUpload())
|
|
dispatch(setLoginFailed(false))
|
|
dispatch(logout())
|
|
|
|
history.push("/")
|
|
|
|
}).catch((err) => {
|
|
console.log(err);
|
|
})
|
|
|
|
}
|
|
} |