import axios from 'axios';
const apiBaseUrl = 'http://127.0.0.1:8086';
const webSocketUrl = 'ws://127.0.0.1:8086';
const apiService = axios.create({
  baseURL: apiBaseUrl, // 设置基本URL
  timeout: 5000, // 设置超时时间
});
// 全局设备配置文件的json
var GlobalConfig = {

};

// 请求拦截器
apiService.interceptors.request.use(
  config => {
    // 在发送请求之前做一些处理，例如添加请求头等 
    // 如果需要更详细的可以定义一个字符串的
    config.headers["deviceType"] = GlobalConfig.deviceType;
    return config;
  },
  error => {
    // 请求错误时的处理
    console.error(error);
    return Promise.reject(error);
  }
);

// 响应拦截器
apiService.interceptors.response.use(
  response => {
    // 对响应数据进行处理
    return response;
  },
  error => {
    // 响应错误时的处理
    console.error(error);
    return Promise.reject(error);
  }
);
// 配置的更改
export function updateConfgJson(config){
  GlobalConfig = config;
  console.log('读取配置文件到内存');
  console.log(GlobalConfig)
}
// 全局的config 配置, 频繁使用,可以用此函数获取,内存中的数据
export function getConfgJson(){
  return GlobalConfig;
}
// todo: 可以直接导入到其他函数使用 也可以在此处定义函数后直接使用
/**
 * 
 * api.get("/coreControl/deviceClient/creditCardHome?key=111&deptId=101").then(response=>{
          console.log(response);
      }).catch(error => {
          console.error(error);
      });
 * 
 * 
 */

/**
 * 设备首页的接口, 根据设备类型,进行不同的修改url
 * @returns 
 */
export function getDeviceHome() {
  
  return apiService({
    url: '/coreControl/deviceClient/creditCardHome?key=' + GlobalConfig.deviceId +"&deptId" + GlobalConfig.deptId,
    method: 'get'
  })
}


export {
  apiService, apiBaseUrl, webSocketUrl 
};
