Merge branch 'dev' into feat/home-data

This commit is contained in:
Gabriellvl 2025-03-02 12:41:24 +01:00 committed by GitHub
commit 1531fa36fe
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
20 changed files with 931 additions and 35 deletions

View file

@ -0,0 +1,43 @@
import axios, { AxiosRequestConfig } from 'axios';
// !!!! when logger is done -> change
/**
* Utility function to fetch data from an API endpoint with error handling.
* Logs errors but does NOT throw exceptions to keep the system running.
*
* @param url The API endpoint to fetch from.
* @param description A short description of what is being fetched (for logging).
* @param params
* @returns The response data if successful, or null if an error occurs.
*/
export async function fetchWithLogging<T>(
url: string,
description: string,
params?: Record<string, any>
): Promise<T | null> {
try {
const config: AxiosRequestConfig = params ? { params } : {};
const response = await axios.get<T>(url, config);
return response.data;
} catch (error: any) {
if (error.response) {
if (error.response.status === 404) {
console.error(
`❌ ERROR: ${description} not found (404) at "${url}".`
);
} else {
console.error(
`❌ ERROR: Failed to fetch ${description}. Status: ${error.response.status} - ${error.response.statusText} (URL: "${url}")`
);
}
} else {
console.error(
`❌ ERROR: Network or unexpected error when fetching ${description}:`,
error.message
);
}
return null;
}
}