import axios, {
  AxiosError,
  AxiosResponse,
  AxiosRequestHeaders,
  AxiosRequestConfig,
  CreateAxiosDefaults,
  InternalAxiosRequestConfig
} from '@ohos/axios';

//import PreferencesUtil from '../PreferencesUtil';
import { printError, printRequest, printResponse, handleRes } from './Helps';
import RequestParamsModel from './requestParams';
import uploadInstance from './UploadUtil';

// jxq: 项目基本请求路径 险峰的
export  const JGRequestBaseUrl = "http://10.88.11.200:8079/"

const DEBUG = true //

// 创建实例
const JGRequest = axios.create(
  {
    baseURL: JGRequestBaseUrl,
    headers: {
      'Content-Type': 'application/json;charset=UTF-8',
    },
    timeout: 60 * 1000,
  }
)

// 添加请求拦截器
JGRequest.interceptors.request.use((config: InternalAxiosRequestConfig) => {

  // 以后登录之后可以在这里传
  config.headers.Authorization = uploadInstance?.uploadParams?.token ?? ""
  printRequest(config)

  return config;
}, (error: AxiosError) => {
  // 对请求错误做些什么
  printError(error)
  return Promise.reject(error);
});
// 添加响应拦截器
JGRequest.interceptors.response.use((response: AxiosResponse) => {
  // 对响应数据做点什么
  printResponse(response)

  let res = handleRes(response)
  let success = res[0] as boolean
  let msg = res[1] as string
  // console.debug("handleRes的返回结果 ", success, msg)

  if (success) {
    return response.data.data;
  }
  else {
    return Promise.reject<string>(msg)
  }

}, (error: AxiosError) => {
  // 对响应错误做点什么
  printError(error)

  return Promise.reject(error);
});

// // 添加响应拦截器
// JGRequest.interceptors.response.use((response: AxiosResponse)=> {
//   // 对响应数据做点什么
//   printResponse(response)
//
//   let [success, msg] = handleRes(response)
//   // console.debug("handleRes的返回结果 ", success, msg)
//
//   if (success) {
//     return response.data.data;
//   }
//   else {
//     return Promise.reject(msg)
//   }
//
// }, (error:AxiosError)=> {
//   // 对响应错误做点什么
//   printError(error)
//
//   return Promise.reject(error);
// });


export default JGRequest;




