Files
super-app/network/ApiClient.ts
2024-03-27 15:06:03 +00:00

52 lines
1.3 KiB
TypeScript

import axios, { AxiosHeaders, AxiosResponse } from "axios";
import { BASE_URL } from "./NetworkConstant";
import { NetworkConnectorModule } from "../App/common/native-module/NativeModules";
import { AxiosRequestConfig } from "axios";
export const getDefaultHeaderData = async () => {
try {
const data = await NetworkConnectorModule.getAllNativeHeaders();
return data;
} catch (error) {
console.error("Error fetching data:", error);
return null;
}
};
export const getXTargetHeaderInfo = (moduleName: string): AxiosRequestConfig => {
return {
headers: {
"X-Target": moduleName
}
}
}
export const ApiClient = axios.create({
baseURL: BASE_URL,
timeout: 10000,
headers: {
'Content-Type': "application/json"
}
});
export const handleSuccess = <T>(response: AxiosResponse<T>): T => {
return response.data;
};
export const handleError = (error: unknown): never => {
if (axios.isAxiosError(error)) {
if (error.response) {
throw new Error(
`Request failed with status code: ${error.response.status} `
);
} else if (error.request) {
throw new Error("No response received from the server");
} else {
throw new Error("Error setting up the request");
}
} else {
throw new Error("Unknown error occurred");
}
};