import {
	request, upload
} from '@/utils/request.js';
import {
	getRefreshToken
} from '@/utils/auth';


// 登录方法
export function appLogin(data) {
	return request({
		url: '/system/auth/login',
		headers: {
			isToken: false
		},
		method: 'POST',
		data
	});
}

/**
 * 钉钉授权登录
 * @param data
 */
export function dingTalkLogin(data) {
	return request({
		url: '/system/auth/appSocialLogin',
		headers: { isToken: false },
		method: 'POST',
		data
	})
}
/**
 * 钉钉授权登录 - H5
 * @param data
 */
export function dingTalkLoginH5(data) {
	return request({
		url: '/system/auth/h5SocialLogin',
		headers: { isToken: false },
		method: 'POST',
		data
	})
}



/**
 * 获取用户信息
 */
export const getLoginUserInfo = () =>
	request({
		url: '/system/user/profile/get',
		method: 'GET',
	})

// 获取用户详细信息
export function getInfo() {
	return request({
		url: '/system/auth/get-permission-info',
		method: 'GET'
	})
}

// 退出方法
export function logout() {
	return request({
		url: '/system/auth/logout',
		method: 'POST'
	})
}
// 刷新访问令牌
export function refreshToken() {
	return request({
		url: '/system/auth/refresh-token?refreshToken=' + getRefreshToken(),
		method: 'POST',
		custom: {
			showLoading: false, // 不用加载中
			showError: false, // 不展示错误提示
		},
	});
}

/**
 * 修改用户信息
 * @param avatar
 * @param mobile
 */
export const updateUserInfo = (mobile) =>
	request({
		url: '/system/user/profile/update',
		method: 'PUT',
		data: { mobile }
	})

/**
 * 修改头像
 * @param avatar
 */
export const updateAvatar = (avatar) =>
	upload('/system/user/profile/update-avatar', {
		// #ifdef MP-ALIPAY
		fileType: 'image/video/audio', // 仅支付宝小程序，且必填。
		// #endif
		filePath: avatar, // 要上传文件资源的路径。
		name: 'avatarFile', // 文件对应的 key , 开发者在服务器端通过这个 key 可以获取到文件二进制内容
	})

/**
 * 修改密码
 * @param oldPwd
 * @param newPwd
 */
export const changePassword = (oldPwd, newPwd) =>
	request({
		url: '/system/user/profile/update-password',
		method: 'PUT',
		data: { oldPassword: oldPwd, newPassword: newPwd },
	})

/**
 * 通过userId获取token
 * @param userId
 */
export const getTokenByUserId = (userId) =>
	request({
		url: '/system/auth/simple/login/' + userId,
		method: 'POST'
	})