This commit is contained in:
2026-04-15 11:19:45 +00:00
commit acb79b2db7
183 changed files with 22067 additions and 0 deletions

View File

@@ -0,0 +1,53 @@
import axios, { AxiosResponse } from "axios";
import { API_URL } from "@/shared/constants/apiEndpoints";
import { getLocale } from "next-intl/server";
import { getCurrentLocale } from "@/shared/lib/getCurrentLocale";
import { useAuthStore } from "@/shared/store/authStore";
const apiClient = axios.create({
baseURL: API_URL || "https://api.quyoshli.uz/api",
});
apiClient.interceptors.request.use(async (config) => {
console.log("API request", config);
const token = useAuthStore.getState().user?.access_token;
if (token) {
config.headers.Authorization = `Bearer ${token}`;
}
let language = "uz";
try {
language = await getLocale();
} catch (e) {
language = getCurrentLocale() || "uz";
}
config.headers["Accept-Language"] = language;
return config;
});
apiClient.interceptors.response.use(
(response) => response,
(error) => {
console.error("API error:", error);
return Promise.reject(error);
}
);
export const GET = <T>(
url: string,
params?: object
): Promise<AxiosResponse<T>> => apiClient.get(url, { params });
export const POST = <T>(url: string, data: object): Promise<AxiosResponse<T>> =>
apiClient.post(url, data);
export const PUT = <T>(url: string, data: object): Promise<AxiosResponse<T>> =>
apiClient.put(url, data);
export const PATCH = <T>(
url: string,
data: object
): Promise<AxiosResponse<T>> => apiClient.patch(url, data);
export const DELETE = <T>(
url: string,
data: object
): Promise<AxiosResponse<T>> => apiClient.delete(url, data);
export default apiClient;