2024-05-15 17:47:45 +05:30
|
|
|
import { handleError, handleSuccess } from "./ApiClient";
|
|
|
|
|
import { AxiosRequestConfig } from "axios";
|
2024-03-27 20:36:03 +05:30
|
|
|
import { BASE_URL } from "./NetworkConstant";
|
|
|
|
|
import axios from "axios";
|
|
|
|
|
import { getBuildConfigDetails } from "../App/common/utilities/CacheUtils";
|
2024-05-15 17:47:45 +05:30
|
|
|
import { addBundleVersionToHeader } from "./NetworkUtils";
|
2024-03-27 20:36:03 +05:30
|
|
|
|
|
|
|
|
export const get = async <T>(
|
|
|
|
|
url: string,
|
2024-05-15 17:47:45 +05:30
|
|
|
config?: AxiosRequestConfig,
|
2024-03-27 20:36:03 +05:30
|
|
|
): Promise<T> => {
|
|
|
|
|
try {
|
2024-05-15 17:47:45 +05:30
|
|
|
let requestConfig: AxiosRequestConfig = config || {};
|
|
|
|
|
let baseUrl: string | undefined;
|
|
|
|
|
await getBuildConfigDetails().then(response => {
|
|
|
|
|
baseUrl = response?.baseUrl;
|
|
|
|
|
});
|
2024-03-27 20:36:03 +05:30
|
|
|
let axiosInstance = axios.create({
|
|
|
|
|
baseURL: baseUrl ? baseUrl : BASE_URL,
|
|
|
|
|
timeout: 10000,
|
2024-05-15 17:47:45 +05:30
|
|
|
headers: requestConfig.headers,
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
addBundleVersionToHeader(axiosInstance);
|
|
|
|
|
|
2024-03-27 20:36:03 +05:30
|
|
|
const response = await axiosInstance.get<T>(baseUrl + url, requestConfig);
|
|
|
|
|
return handleSuccess<T>(response);
|
|
|
|
|
} catch (error) {
|
|
|
|
|
return handleError(error);
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
export const post = async <T>(
|
|
|
|
|
url: string,
|
|
|
|
|
data?: any,
|
2024-05-15 17:47:45 +05:30
|
|
|
config?: AxiosRequestConfig,
|
2024-03-27 20:36:03 +05:30
|
|
|
): Promise<T> => {
|
|
|
|
|
try {
|
2024-05-15 17:47:45 +05:30
|
|
|
let requestConfig: AxiosRequestConfig = config || {};
|
|
|
|
|
let baseUrl: string | undefined;
|
|
|
|
|
await getBuildConfigDetails().then(response => {
|
|
|
|
|
baseUrl = response?.baseUrl;
|
|
|
|
|
});
|
2024-03-27 20:36:03 +05:30
|
|
|
let axiosInstance = axios.create({
|
|
|
|
|
baseURL: baseUrl ? baseUrl : BASE_URL,
|
|
|
|
|
timeout: 10000,
|
2024-05-15 17:47:45 +05:30
|
|
|
headers: requestConfig.headers,
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
addBundleVersionToHeader(axiosInstance);
|
|
|
|
|
|
|
|
|
|
const response = await axiosInstance.post<T>(
|
|
|
|
|
baseUrl + url,
|
|
|
|
|
data,
|
|
|
|
|
requestConfig,
|
|
|
|
|
);
|
2024-03-27 20:36:03 +05:30
|
|
|
return handleSuccess<T>(response);
|
|
|
|
|
} catch (error) {
|
|
|
|
|
return handleError(error);
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
export const patch = async <T>(
|
|
|
|
|
url: string,
|
|
|
|
|
data?: any,
|
2024-05-15 17:47:45 +05:30
|
|
|
config?: AxiosRequestConfig,
|
2024-03-27 20:36:03 +05:30
|
|
|
): Promise<T> => {
|
|
|
|
|
try {
|
2024-05-15 17:47:45 +05:30
|
|
|
let requestConfig: AxiosRequestConfig = config || {};
|
|
|
|
|
let baseUrl: string | undefined;
|
|
|
|
|
await getBuildConfigDetails().then(response => {
|
|
|
|
|
baseUrl = response?.baseUrl;
|
|
|
|
|
});
|
2024-03-27 20:36:03 +05:30
|
|
|
let axiosInstance = axios.create({
|
|
|
|
|
baseURL: baseUrl ? baseUrl : BASE_URL,
|
|
|
|
|
timeout: 10000,
|
2024-05-15 17:47:45 +05:30
|
|
|
headers: requestConfig.headers,
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
addBundleVersionToHeader(axiosInstance);
|
|
|
|
|
|
|
|
|
|
const response = await axiosInstance.patch<T>(
|
|
|
|
|
baseUrl + url,
|
|
|
|
|
data,
|
|
|
|
|
requestConfig,
|
|
|
|
|
);
|
2024-03-27 20:36:03 +05:30
|
|
|
return handleSuccess<T>(response);
|
|
|
|
|
} catch (error) {
|
|
|
|
|
return handleError(error);
|
|
|
|
|
}
|
|
|
|
|
};
|