mirror of
https://github.com/wassname/talk.git
synced 2026-07-12 01:57:58 +08:00
32 lines
1.1 KiB
JavaScript
32 lines
1.1 KiB
JavaScript
import * as actions from '../constants/auth';
|
|
import coralApi from '../../../coral-framework/helpers/response';
|
|
|
|
// Check Login
|
|
|
|
const checkLoginRequest = () => ({type: actions.CHECK_LOGIN_REQUEST});
|
|
const checkLoginSuccess = (user, isAdmin) => ({type: actions.CHECK_LOGIN_SUCCESS, user, isAdmin});
|
|
const checkLoginFailure = error => ({type: actions.CHECK_LOGIN_FAILURE, error});
|
|
|
|
export const checkLogin = () => dispatch => {
|
|
dispatch(checkLoginRequest());
|
|
coralApi('/auth')
|
|
.then(result => {
|
|
const isAdmin = !!result.user.roles.filter(i => i === 'admin').length;
|
|
dispatch(checkLoginSuccess(result.user, isAdmin));
|
|
})
|
|
.catch(error => dispatch(checkLoginFailure(error)));
|
|
};
|
|
|
|
// LogOut Actions
|
|
|
|
const logOutRequest = () => ({type: actions.LOGOUT_REQUEST});
|
|
const logOutSuccess = () => ({type: actions.LOGOUT_SUCCESS});
|
|
const logOutFailure = () => ({type: actions.LOGOUT_FAILURE});
|
|
|
|
export const logout = () => dispatch => {
|
|
dispatch(logOutRequest());
|
|
coralApi('/auth', {method: 'DELETE'})
|
|
.then(() => dispatch(logOutSuccess()))
|
|
.catch(error => dispatch(logOutFailure(error)));
|
|
};
|