import { isFunction } from '../util'
import { validate } from '../common'
import { getAccessToken } from './secret'
import { request } from '../API/request'
/**
* @alias AuthStatusCallback
* @callback AuthStatusCallback
* @param {Object} statusObj
* @param {String} statusObj.status "connected" 또는 "not_connected"
* @param {Object} statusObj.user 로그인 상태일 때만 전달되는 [사용자 정보](https://developers.kakao.com/docs/latest/ko/kakaologin/common#user-info)
* @memberof Kakao.Auth
*/
/**
* @description 현재 로그인 상태를 반환합니다.
* @function getStatusInfo
* @param {AuthStatusCallback} [callback] 로그인 상태를 받을 콜백 함수
* @memberof Kakao.Auth
*/
export function getStatusInfo(callback) {
validate(callback, isFunction, 'Auth.getStatusInfo')
if (!getAccessToken()) {
callback({
status: 'not_connected'
})
} else {
request({
url: '/v2/user/me',
success(res) {
callback({
status: 'connected',
user: res,
})
},
fail() {
callback({
status: 'not_connected',
})
},
})
}
}