CoolFace
Apppublic

tokyo-boy/inventory-backend

sourceHugging Faceupdated 4mo agoView on Hugging Face
0likes
client.js124 linesDownload Raw Back to api
1import axios from "axios";2 3import { API_BASE_URL } from "../utils/constants";4 5 6// ==================================================7// Axios Instance8// ==================================================9 10const apiClient = axios.create({11  baseURL: API_BASE_URL,12  timeout: 10000,13  headers: {14    "Content-Type": "application/json",15  },16});17 18 19// ==================================================20// Request Interceptor21// ==================================================22 23apiClient.interceptors.request.use(24  (config) => {25    return config;26  },27  (error) => {28    return Promise.reject(error);29  }30);31 32 33// ==================================================34// Response Interceptor35// ==================================================36 37apiClient.interceptors.response.use(38  (response) => response,39  (error) => {40    const message =41      error?.response?.data?.detail ||42      error?.response?.data?.message ||43      error?.message ||44      "An unexpected error occurred.";45 46    return Promise.reject(47      new Error(message)48    );49  }50);51 52 53// ==================================================54// API Methods55// ==================================================56 57export const api = {58  get: async (url, config = {}) => {59    const response =60      await apiClient.get(url, config);61 62    return response.data;63  },64 65  post: async (66    url,67    data,68    config = {}69  ) => {70    const response =71      await apiClient.post(72        url,73        data,74        config75      );76 77    return response.data;78  },79 80  put: async (81    url,82    data,83    config = {}84  ) => {85    const response =86      await apiClient.put(87        url,88        data,89        config90      );91 92    return response.data;93  },94 95  patch: async (96    url,97    data,98    config = {}99  ) => {100    const response =101      await apiClient.patch(102        url,103        data,104        config105      );106 107    return response.data;108  },109 110  delete: async (111    url,112    config = {}113  ) => {114    const response =115      await apiClient.delete(116        url,117        config118      );119 120    return response.data;121  },122};123 124export default apiClient;