-
Notifications
You must be signed in to change notification settings - Fork 2
/
api.js
57 lines (49 loc) · 1.46 KB
/
api.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
import axios from "axios";
import axiosRetry from "axios-retry";
async function checkVersionWithAppUpgrade(appInfo, xApiKey) {
try {
const appUpgradeBaseUrl = "https://appupgrade.dev";
const { appName, appVersion, platform, environment, appLanguage } = appInfo;
const { customAttributes } = appInfo;
axiosRetry(axios, {
retries: 3,
retryDelay: axiosRetry.exponentialDelay,
retryCondition: () => true,
});
const params = {
app_name: appName,
app_version: appVersion,
platform: platform,
environment: environment,
app_language: appLanguage,
};
for (const key in customAttributes) {
params[key] = customAttributes[key];
}
const response = await axios.get(
`${appUpgradeBaseUrl}/api/v1/versions/check`,
{
headers: {
"x-api-key": xApiKey,
sdk: "react-native", //Telemetry purposes
},
params,
validateStatus: function (status) {
return status >= 200 && status < 500; // default
},
}
);
if (response.status === 200) {
console.info(
"App Upgrade: Api Response: ",
JSON.stringify(response.data)
);
return response.data;
} else {
console.error("App Upgrade:", response.data.message);
}
} catch (e) {
console.error("App Upgrade Error:", e.message);
}
}
export { checkVersionWithAppUpgrade };