46 lines
1016 B
JavaScript
46 lines
1016 B
JavaScript
export default async function fetchWrapper(
|
|
path,
|
|
data = null,
|
|
method = "GET",
|
|
headers = {}
|
|
) {
|
|
try {
|
|
const res = await fetch(
|
|
`${import.meta.env.VITE_API_URL}${path}`,
|
|
{
|
|
method,
|
|
credentials: "include",
|
|
headers: {
|
|
"Accept": "application/json",
|
|
"Content-Type": "application/json",
|
|
...headers,
|
|
},
|
|
body: data ? JSON.stringify(data) : null,
|
|
}
|
|
);
|
|
|
|
let responseData = null;
|
|
|
|
try {
|
|
responseData = await res.json();
|
|
} catch (_) {
|
|
responseData = null;
|
|
}
|
|
|
|
return {
|
|
status: res.status,
|
|
data: responseData,
|
|
};
|
|
|
|
} catch (err) {
|
|
console.error("❌ Erreur réseau :", err);
|
|
|
|
return {
|
|
status: 0,
|
|
data: {
|
|
message: "Network error",
|
|
},
|
|
};
|
|
}
|
|
}
|