Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: improve fetch error handling #57

Merged
merged 12 commits into from
Oct 16, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
87 changes: 49 additions & 38 deletions packages/applications/src/cache-settings/services/index.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import { fetchWithErrorHandling } from '../../utils';
import {
ApiCreateCacheSettingPayload,
ApiCreateCacheSettingResponse,
Expand Down Expand Up @@ -25,12 +26,14 @@ export const getCacheSettings = async (
sort,
order,
});
const response = await fetch(`${BASE_URL}/${Id}/cache_settings?${queryParams.toString()}`, {
method: 'GET',
headers: { Accept: 'application/json; version=3', Authorization: `Token ${token}` },
});
const data = await response.json();
if (debug) console.log('Response:', data);
const data = await fetchWithErrorHandling(
`${BASE_URL}/${Id}/cache_settings?${queryParams.toString()}`,
{
method: 'GET',
headers: { Accept: 'application/json; version=3', Authorization: `Token ${token}` },
},
debug,
);
return data;
} catch (error) {
if (debug) console.error('Error getting cache settings:', error);
Expand All @@ -45,12 +48,14 @@ export const getCacheSetting = async (
debug?: boolean,
): Promise<ApiGetCacheSettingResponse> => {
try {
const response = await fetch(`${BASE_URL}/${Id}/cache_settings/${cacheSettingId}`, {
method: 'GET',
headers: { Accept: 'application/json; version=3', Authorization: `Token ${token}` },
});
const data = await response.json();
if (debug) console.log('Response:', data);
const data = await fetchWithErrorHandling(
`${BASE_URL}/${Id}/cache_settings/${cacheSettingId}`,
{
method: 'GET',
headers: { Accept: 'application/json; version=3', Authorization: `Token ${token}` },
},
debug,
);
return data;
} catch (error) {
if (debug) console.error('Error getting cache setting by ID:', error);
Expand All @@ -65,17 +70,19 @@ export const postCacheSetting = async (
debug?: boolean,
): Promise<ApiCreateCacheSettingResponse> => {
try {
const response = await fetch(`${BASE_URL}/${Id}/cache_settings`, {
method: 'POST',
headers: {
Accept: 'application/json; version=3',
'Content-Type': 'application/json',
Authorization: `Token ${token}`,
const data = await fetchWithErrorHandling(
`${BASE_URL}/${Id}/cache_settings`,
{
method: 'POST',
headers: {
Accept: 'application/json; version=3',
'Content-Type': 'application/json',
Authorization: `Token ${token}`,
},
body: JSON.stringify(cacheSettingData),
},
body: JSON.stringify(cacheSettingData),
});
const data = await response.json();
if (debug) console.log('Response:', data);
debug,
);
return data;
} catch (error) {
if (debug) console.error('Error creating cache setting:', error);
Expand All @@ -91,17 +98,19 @@ export const patchCacheSetting = async (
debug?: boolean,
): Promise<ApiUpdateCacheSettingResponse> => {
try {
const response = await fetch(`${BASE_URL}/${Id}/cache_settings/${cacheSettingId}`, {
method: 'PATCH',
headers: {
Accept: 'application/json; version=3',
'Content-Type': 'application/json',
Authorization: `Token ${token}`,
const data = await fetchWithErrorHandling(
`${BASE_URL}/${Id}/cache_settings/${cacheSettingId}`,
{
method: 'PATCH',
headers: {
Accept: 'application/json; version=3',
'Content-Type': 'application/json',
Authorization: `Token ${token}`,
},
body: JSON.stringify(cacheSettingData),
},
body: JSON.stringify(cacheSettingData),
});
const data = await response.json();
if (debug) console.log('Response:', data);
debug,
);
return data;
} catch (error) {
if (debug) console.error('Error updating cache setting:', error);
Expand All @@ -116,12 +125,14 @@ export const deleteCacheSetting = async (
debug?: boolean,
): Promise<ApiDeleteCacheSettingResponse> => {
try {
const response = await fetch(`${BASE_URL}/${Id}/cache_settings/${cacheSettingId}`, {
method: 'DELETE',
headers: { Accept: 'application/json; version=3', Authorization: `Token ${token}` },
});
const data = await response.json();
if (debug) console.log('Response:', data);
const data = await fetchWithErrorHandling(
`${BASE_URL}/${Id}/cache_settings/${cacheSettingId}`,
{
method: 'DELETE',
headers: { Accept: 'application/json; version=3', Authorization: `Token ${token}` },
},
debug,
);
return data;
} catch (error) {
if (debug) console.error('Error deleting cache setting:', error);
Expand Down
87 changes: 49 additions & 38 deletions packages/applications/src/device-groups/services/index.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import { fetchWithErrorHandling } from '../../utils';
import {
ApiCreateDeviceGroupPayload,
ApiCreateDeviceGroupResponse,
Expand Down Expand Up @@ -34,12 +35,14 @@ const getDeviceGroups = async (
sort,
order,
});
const response = await fetch(`${BASE_URL}/${Id}/device_groups?${queryParams.toString()}`, {
method: 'GET',
headers: { Accept: 'application/json; version=3', Authorization: `Token ${token}` },
});
const data = await response.json();
if (debug) console.log('Response:', data);
const data = await fetchWithErrorHandling(
`${BASE_URL}/${Id}/device_groups?${queryParams.toString()}`,
{
method: 'GET',
headers: { Accept: 'application/json; version=3', Authorization: `Token ${token}` },
},
debug,
);
return data;
} catch (error) {
if (debug) console.error('Error getting device groups:', error);
Expand All @@ -63,12 +66,14 @@ const getDeviceGroupById = async (
debug?: boolean,
): Promise<ApiGetDeviceGroupResponse> => {
try {
const response = await fetch(`${BASE_URL}/${Id}/device_groups/${deviceGroupId}`, {
method: 'GET',
headers: { Accept: 'application/json; version=3', Authorization: `Token ${token}` },
});
const data = await response.json();
if (debug) console.log('Response:', data);
const data = await fetchWithErrorHandling(
`${BASE_URL}/${Id}/device_groups/${deviceGroupId}`,
{
method: 'GET',
headers: { Accept: 'application/json; version=3', Authorization: `Token ${token}` },
},
debug,
);
return data;
} catch (error) {
if (debug) console.error('Error getting device group by ID:', error);
Expand All @@ -92,17 +97,19 @@ const createDeviceGroup = async (
debug?: boolean,
): Promise<ApiCreateDeviceGroupResponse> => {
try {
const response = await fetch(`${BASE_URL}/${Id}/device_groups`, {
method: 'POST',
headers: {
Accept: 'application/json; version=3',
'Content-Type': 'application/json',
Authorization: `Token ${token}`,
const data = await fetchWithErrorHandling(
`${BASE_URL}/${Id}/device_groups`,
{
method: 'POST',
headers: {
Accept: 'application/json; version=3',
'Content-Type': 'application/json',
Authorization: `Token ${token}`,
},
body: JSON.stringify(deviceGroupData),
},
body: JSON.stringify(deviceGroupData),
});
const data = await response.json();
if (debug) console.log('Response:', data);
debug,
);
return data;
} catch (error) {
if (debug) console.error('Error creating device group:', error);
Expand All @@ -128,17 +135,19 @@ const updateDeviceGroup = async (
debug?: boolean,
): Promise<ApiUpdateDeviceGroupResponse> => {
try {
const response = await fetch(`${BASE_URL}/${Id}/device_groups/${deviceGroupId}`, {
method: 'PATCH',
headers: {
Accept: 'application/json; version=3',
'Content-Type': 'application/json',
Authorization: `Token ${token}`,
const data = await fetchWithErrorHandling(
`${BASE_URL}/${Id}/device_groups/${deviceGroupId}`,
{
method: 'PATCH',
headers: {
Accept: 'application/json; version=3',
'Content-Type': 'application/json',
Authorization: `Token ${token}`,
},
body: JSON.stringify(deviceGroupData),
},
body: JSON.stringify(deviceGroupData),
});
const data = await response.json();
if (debug) console.log('Response:', data);
debug,
);
return data;
} catch (error) {
if (debug) console.error('Error updating device group:', error);
Expand All @@ -162,12 +171,14 @@ const deleteDeviceGroup = async (
debug?: boolean,
): Promise<ApiDeleteDeviceGroupResponse> => {
try {
const response = await fetch(`${BASE_URL}/${Id}/device_groups/${deviceGroupId}`, {
method: 'DELETE',
headers: { Accept: 'application/json; version=3', Authorization: `Token ${token}` },
});
const data = await response.json();
if (debug) console.log('Response:', data);
const data = await fetchWithErrorHandling(
`${BASE_URL}/${Id}/device_groups/${deviceGroupId}`,
{
method: 'DELETE',
headers: { Accept: 'application/json; version=3', Authorization: `Token ${token}` },
},
debug,
);
return data;
} catch (error) {
if (debug) console.error('Error deleting device group:', error);
Expand Down
86 changes: 49 additions & 37 deletions packages/applications/src/functions-instances/services/index.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import { fetchWithErrorHandling } from '../../utils';
import {
ApiCreateFunctionInstancePayload,
ApiCreateFunctionInstanceResponse,
Expand Down Expand Up @@ -35,12 +36,14 @@ const listFunctionInstances = async (
order_by,
filter,
});
const response = await fetch(`${BASE_URL}/${Id}/functions_instances?${queryParams.toString()}`, {
method: 'GET',
headers: { Accept: 'application/json; version=3', Authorization: `Token ${token}` },
});
const data = await response.json();
if (debug) console.log('Response:', data);
const data = await fetchWithErrorHandling(
`${BASE_URL}/${Id}/functions_instances?${queryParams.toString()}`,
{
method: 'GET',
headers: { Accept: 'application/json; version=3', Authorization: `Token ${token}` },
},
debug,
);
return data;
} catch (error) {
if (debug) console.error('Error listing function instances:', error);
Expand All @@ -64,12 +67,14 @@ const getFunctionInstanceById = async (
debug?: boolean,
): Promise<ApiGetFunctionInstanceResponse> => {
try {
const response = await fetch(`${BASE_URL}/${Id}/functions_instances/${functionInstanceId}`, {
method: 'GET',
headers: { Accept: 'application/json; version=3', Authorization: `Token ${token}` },
});
const data = await response.json();
if (debug) console.log('Response:', data);
const data = await fetchWithErrorHandling(
`${BASE_URL}/${Id}/functions_instances/${functionInstanceId}`,
{
method: 'GET',
headers: { Accept: 'application/json; version=3', Authorization: `Token ${token}` },
},
debug,
);
return data;
} catch (error) {
if (debug) console.error('Error getting function instance by ID:', error);
Expand All @@ -93,16 +98,19 @@ const createFunctionInstance = async (
debug?: boolean,
): Promise<ApiCreateFunctionInstanceResponse> => {
try {
const response = await fetch(`${BASE_URL}/${edgeApplicationId}/functions_instances`, {
method: 'POST',
headers: {
Accept: 'application/json; version=3',
'Content-Type': 'application/json',
Authorization: `Token ${token}`,
const data = await fetchWithErrorHandling(
`${BASE_URL}/${edgeApplicationId}/functions_instances`,
{
method: 'POST',
headers: {
Accept: 'application/json; version=3',
'Content-Type': 'application/json',
Authorization: `Token ${token}`,
},
body: JSON.stringify(functionInstanceData),
},
body: JSON.stringify(functionInstanceData),
});
const data = await response.json();
debug,
);
if (debug) console.log('Response:', data);
return data;
} catch (error) {
Expand All @@ -129,17 +137,19 @@ const updateFunctionInstance = async (
debug?: boolean,
): Promise<ApiUpdateFunctionInstanceResponse> => {
try {
const response = await fetch(`${BASE_URL}/${Id}/functions_instances/${functionInstanceId}`, {
method: 'PATCH',
headers: {
Accept: 'application/json; version=3',
'Content-Type': 'application/json',
Authorization: `Token ${token}`,
const data = await fetchWithErrorHandling(
`${BASE_URL}/${Id}/functions_instances/${functionInstanceId}`,
{
method: 'PATCH',
headers: {
Accept: 'application/json; version=3',
'Content-Type': 'application/json',
Authorization: `Token ${token}`,
},
body: JSON.stringify(functionInstanceData),
},
body: JSON.stringify(functionInstanceData),
});
const data = await response.json();
if (debug) console.log('Response:', data);
debug,
);
return data;
} catch (error) {
if (debug) console.error('Error updating function instance:', error);
Expand All @@ -163,12 +173,14 @@ const deleteFunctionInstance = async (
debug?: boolean,
): Promise<ApiDeleteFunctionInstanceResponse> => {
try {
const response = await fetch(`${BASE_URL}/${edgeApplicationId}/functions_instances/${edgeFunctionInstanceId}`, {
method: 'DELETE',
headers: { Accept: 'application/json; version=3', Authorization: `Token ${token}` },
});
const data = await response.json();
if (debug) console.log('Response:', data);
const data = await fetchWithErrorHandling(
`${BASE_URL}/${edgeApplicationId}/functions_instances/${edgeFunctionInstanceId}`,
{
method: 'DELETE',
headers: { Accept: 'application/json; version=3', Authorization: `Token ${token}` },
},
debug,
);
return data;
} catch (error) {
if (debug) console.error('Error deleting function instance:', error);
Expand Down
Loading