2024-05-23 23:00:56 +05:30
|
|
|
import {
|
|
|
|
|
AxiosInstance,
|
|
|
|
|
AxiosRequestConfig,
|
|
|
|
|
RawAxiosRequestHeaders,
|
|
|
|
|
} from "axios";
|
2024-03-27 20:36:03 +05:30
|
|
|
import { getStringPreference } from "../App/common/utilities/SharedPreferenceUtils";
|
2024-05-15 17:47:45 +05:30
|
|
|
import packageJson from "../package.json";
|
|
|
|
|
import { BUNDLE_VERSION } from "./NetworkConstant";
|
2024-03-27 20:36:03 +05:30
|
|
|
|
|
|
|
|
const getSessionToken = async () => {
|
|
|
|
|
return await getStringPreference("SESSION_TOKEN", "string");
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const getDeviceId = async () => {
|
|
|
|
|
return await getStringPreference("DEVICE_ID", "string");
|
|
|
|
|
};
|
|
|
|
|
|
2024-06-18 17:24:08 +05:30
|
|
|
export const getBundleVersion = () => {
|
|
|
|
|
return packageJson.versionCode;
|
|
|
|
|
};
|
|
|
|
|
|
2024-05-15 17:47:45 +05:30
|
|
|
const addBundleVersionToHeader = (axiosInstance: AxiosInstance) => {
|
|
|
|
|
axiosInstance.interceptors.request.use(requestConfig => {
|
2024-06-18 17:24:08 +05:30
|
|
|
requestConfig.headers[BUNDLE_VERSION] = getBundleVersion();
|
2024-05-15 17:47:45 +05:30
|
|
|
return requestConfig;
|
|
|
|
|
});
|
|
|
|
|
};
|
|
|
|
|
|
2024-05-23 23:00:56 +05:30
|
|
|
const mergeHeaders = ({
|
|
|
|
|
configs,
|
|
|
|
|
}: {
|
|
|
|
|
configs: AxiosRequestConfig[];
|
|
|
|
|
}): AxiosRequestConfig => {
|
|
|
|
|
const mergedHeaders = configs.reduce((acc, config) => {
|
|
|
|
|
const headers = config.headers as RawAxiosRequestHeaders;
|
|
|
|
|
return { ...acc, ...headers };
|
|
|
|
|
}, {} as RawAxiosRequestHeaders);
|
|
|
|
|
|
|
|
|
|
return {
|
|
|
|
|
headers: mergedHeaders,
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
export { addBundleVersionToHeader, getDeviceId, getSessionToken, mergeHeaders };
|