import request from '@/utils/request'
import { FS_APPID } from '@/config'

/****************** 飞书相关业务接口 ******************/
// 浏览器端授权飞书登录，回调地址 URL 上带回 code
export const fsOAuthUrl = `https://accounts.feishu.cn/open-apis/authen/v1/authorize?client_id=${FS_APPID}&state=fs&redirect_uri=${import.meta.env.VITE_APP_REDIRECT_URL}`

/**
 * 飞书客户端-静默授权获取 code
 * @returns {Promise}
 */
export function fsClientAuth() {
  return new Promise((resolve, reject) => {
    // 客户端内
    window.h5sdk.ready(async () => {
      if (window.tt?.requestAccess) {
        window.tt.requestAccess({
          scopeList: [],
          appID: FS_APPID,
          success: async ({ code }) => {
            resolve(code)
          }
        })
      }
    })
  })
}

/**
 * 飞书登录
 * @param {*} data { code: 授权码 } 
 * @returns 
 */
export function fsLogin(data) {
  return request({
    url: '/auth/fs/login',
    method: 'POST',
    data
  })
}

// 勤策系统-静默登录（用勤测在 URL 上回传的参数调用自己后台登录接口）
export function qcLogin({ code }) {
  return request({
    url: `/auth/qc/login?code=${code}`
  })
}


// 账号密码登录
export function login(data) {
  return request({
    url: '/auth/login',
    method: 'post',
    data
  })
}

// 获取用户详细信息
export function getInfo() {
  return request({
    url: '/system/user/getInfo'
  })
}


// 获取用户（勤策-当前登录账户是否存在人客关系）
export function getQcMarketEmpInfo() {
  return request({
    url: '/operation/qc/market/emp'
  })
}

// 退出方法
export function logout() {
  return request({
    url: '/auth/logout',
    method: 'delete'
  })
}


// 刷新 token 有效期
export function refreshTokenAPI(refreshToken) {
  return request({
    url: '/auth/refreshToken',
    method: 'post',
    headers: {
      isToken: false, // 本次请求无需设置在请求拦截器设置请求头上的 token（容易把过期的 token 覆盖到 Authorization 了，而这次 Authorization 我带的是刷新的 refreshToken 给后端）
      'Authorization': `Bearer ` + refreshToken
    },
    
  })
}
