TP-64336 | bundle version added (#10857)

This commit is contained in:
Mayank Singh
2024-05-15 17:47:45 +05:30
committed by GitHub
parent 93f020fca9
commit 42bda72347
4 changed files with 60 additions and 31 deletions

View File

@@ -2,3 +2,4 @@ export const BASE_URL = "https://sa.navi.com";
export const APPLICATION_ID_PATH = "/arc-warden/api/v2/application";
export const FILL_APPLICATION_PATH =
"/arc-warden/api/v2/application/:applicationId/fill";
export const BUNDLE_VERSION = "x-rn-bundle-version";

View File

@@ -1,25 +1,28 @@
import { handleError, handleSuccess, ApiClient, getDefaultHeaderData } from "./ApiClient";
import { AxiosRequestConfig, InternalAxiosRequestConfig } from "axios";
import { getDeviceId, getSessionToken } from "./NetworkUtils";
import { handleError, handleSuccess } from "./ApiClient";
import { AxiosRequestConfig } from "axios";
import { BASE_URL } from "./NetworkConstant";
import axios from "axios";
import { getBuildConfigDetails } from "../App/common/utilities/CacheUtils";
import { addBundleVersionToHeader } from "./NetworkUtils";
export const get = async <T>(
url: string,
config?: AxiosRequestConfig
config?: AxiosRequestConfig,
): Promise<T> => {
try {
let requestConfig: AxiosRequestConfig = config || {}
let baseUrl: string | undefined
await getBuildConfigDetails().then((response) => {
baseUrl = response?.baseUrl
})
let requestConfig: AxiosRequestConfig = config || {};
let baseUrl: string | undefined;
await getBuildConfigDetails().then(response => {
baseUrl = response?.baseUrl;
});
let axiosInstance = axios.create({
baseURL: baseUrl ? baseUrl : BASE_URL,
timeout: 10000,
headers: requestConfig.headers
})
headers: requestConfig.headers,
});
addBundleVersionToHeader(axiosInstance);
const response = await axiosInstance.get<T>(baseUrl + url, requestConfig);
return handleSuccess<T>(response);
} catch (error) {
@@ -30,20 +33,27 @@ export const get = async <T>(
export const post = async <T>(
url: string,
data?: any,
config?: AxiosRequestConfig
config?: AxiosRequestConfig,
): Promise<T> => {
try {
let requestConfig: AxiosRequestConfig = config || {}
let baseUrl: string | undefined
await getBuildConfigDetails().then((response) => {
baseUrl = response?.baseUrl
})
let requestConfig: AxiosRequestConfig = config || {};
let baseUrl: string | undefined;
await getBuildConfigDetails().then(response => {
baseUrl = response?.baseUrl;
});
let axiosInstance = axios.create({
baseURL: baseUrl ? baseUrl : BASE_URL,
timeout: 10000,
headers: requestConfig.headers
})
const response = await axiosInstance.post<T>(baseUrl + url, data, requestConfig);
headers: requestConfig.headers,
});
addBundleVersionToHeader(axiosInstance);
const response = await axiosInstance.post<T>(
baseUrl + url,
data,
requestConfig,
);
return handleSuccess<T>(response);
} catch (error) {
return handleError(error);
@@ -53,20 +63,27 @@ export const post = async <T>(
export const patch = async <T>(
url: string,
data?: any,
config?: AxiosRequestConfig
config?: AxiosRequestConfig,
): Promise<T> => {
try {
let requestConfig: AxiosRequestConfig = config || {}
let baseUrl: string | undefined
await getBuildConfigDetails().then((response) => {
baseUrl = response?.baseUrl
})
let requestConfig: AxiosRequestConfig = config || {};
let baseUrl: string | undefined;
await getBuildConfigDetails().then(response => {
baseUrl = response?.baseUrl;
});
let axiosInstance = axios.create({
baseURL: baseUrl ? baseUrl : BASE_URL,
timeout: 10000,
headers: requestConfig.headers
})
const response = await axiosInstance.patch<T>(baseUrl + url, data, requestConfig);
headers: requestConfig.headers,
});
addBundleVersionToHeader(axiosInstance);
const response = await axiosInstance.patch<T>(
baseUrl + url,
data,
requestConfig,
);
return handleSuccess<T>(response);
} catch (error) {
return handleError(error);

View File

@@ -1,4 +1,7 @@
import { getStringPreference } from "../App/common/utilities/SharedPreferenceUtils";
import packageJson from "../package.json";
import { BUNDLE_VERSION } from "./NetworkConstant";
import { AxiosInstance } from "axios";
const getSessionToken = async () => {
return await getStringPreference("SESSION_TOKEN", "string");
@@ -8,4 +11,11 @@ const getDeviceId = async () => {
return await getStringPreference("DEVICE_ID", "string");
};
export { getSessionToken, getDeviceId };
const addBundleVersionToHeader = (axiosInstance: AxiosInstance) => {
axiosInstance.interceptors.request.use(requestConfig => {
requestConfig.headers[BUNDLE_VERSION] = (packageJson as any).versionCode;
return requestConfig;
});
};
export { getSessionToken, getDeviceId, addBundleVersionToHeader };

View File

@@ -1,6 +1,7 @@
{
"name": "NaviApp",
"version": "0.0.2",
"version": "0.1.0",
"versionCode": 1,
"private": true,
"scripts": {
"start": "yarn react-native start",