request.ts 1.02 KB
import axios, { AxiosResponse, AxiosRequestConfig } from 'axios';
import { message as $message } from 'antd';

interface ResponseProp {
  code: number
  data?: any
  message: string
  success: boolean
}

const Service = axios.create({
  baseURL: '/api',
  timeout: 20000,
});

Service.interceptors.request.use(
  (config: AxiosRequestConfig) => {
    const aToken = sessionStorage.getItem('aToken') || 'bearer 70b78db2-2065-4d3a-b69b-1b857adcd9ab';
    aToken && (config.headers.Authorization = aToken);
    return config;
  },
  (error: any) => {
    Promise.reject(error);
  }
);

Service.interceptors.response.use(
  (response: AxiosResponse) => {
    const res = response.data;
    if (res.code === 0 || res.success) {
      return Promise.resolve(res);
    } else {
      // if (res.code === 400 || res.code === 401) {
      $message.error(res.message);
      //   return
      // } else {
      return Promise.reject(res.message);
      // }
    }
  },
  (error: any) => {
    return Promise.reject(error);
  }
);

export default Service;