import { http, api } from '@/utils';
import { encrypt } from '@/components/passport/encryption';
import jsCookie from 'js-cookie'


const accountLogin = user => dispatch => {
    return http.post(`${api['passport-api']}/user_login`, {
        user_name: user.username,
        password: encrypt(user.password),
        is_encrypt: 1
    }).then(res => {
        const data = res.data
        let payload
        if (data.errno === 0) {
            const {user_name: username, avatar_file: avatar, ...rest} = data.data.user_info
            payload = {
                hasError: false,
                msg: data.msg,
                data: {username, avatar, ...rest}
            }
        } else {
            payload = {
                hasError: true,
                msg: data.msg
            }
        }
        dispatch(setCurrentUser(payload))
        return payload
    })
}

/*
const CAPTCHA_LOGIN = 'CAPTCHA_LOGIN'
const captchaLogin = payload => dispatch => {
    return http.post(`${api['passport-api']}/`)
}
*/


const SET_CURRENT_USER = 'SET_CURRENT_USER'
const setCurrentUser = payload => ({
    type: SET_CURRENT_USER,
    payload
})


const LOGOUT = 'LOGOUT'
const logout = () => dispatch => {
    jsCookie.remove('token')
    jsCookie.remove('uid')
    dispatch(setCurrentUser({}))
}


export {
    accountLogin,
    SET_CURRENT_USER,
    setCurrentUser
}