mirror of
https://codeberg.org/PLG-Development/PLG-MuDiCS
synced 2026-07-05 16:37:09 +00:00
improve api error handling
This commit is contained in:
@@ -67,7 +67,6 @@ done
|
|||||||
|
|
||||||
export async function ping_ip(ip: string): Promise<DisplayStatus> {
|
export async function ping_ip(ip: string): Promise<DisplayStatus> {
|
||||||
const raw_response = await request_control(`/ping?ip=${ip}`, { method: 'GET' });
|
const raw_response = await request_control(`/ping?ip=${ip}`, { method: 'GET' });
|
||||||
console.log(raw_request);
|
|
||||||
if (!raw_response) return null;
|
if (!raw_response) return null;
|
||||||
return raw_response.status ? to_display_status(raw_response.status) : null;
|
return raw_response.status ? to_display_status(raw_response.status) : null;
|
||||||
}
|
}
|
||||||
@@ -93,6 +92,7 @@ async function raw_request(url: string, options: { method: string, headers?: Rec
|
|||||||
const response = await fetch(url + cache_buster, options);
|
const response = await fetch(url + cache_buster, options);
|
||||||
if (!response.ok) {
|
if (!response.ok) {
|
||||||
console.error(`HTTP error! Status: ${response.status}`);
|
console.error(`HTTP error! Status: ${response.status}`);
|
||||||
|
notifications.push("error", `HTTP-Fehler bei API-Anfrage`, `${url}\nHTTP-Status: ${response.status}`);
|
||||||
}
|
}
|
||||||
const contentType = response.headers.get("content-type") || "";
|
const contentType = response.headers.get("content-type") || "";
|
||||||
if (!contentType.includes("application/json")) {
|
if (!contentType.includes("application/json")) {
|
||||||
@@ -100,12 +100,18 @@ async function raw_request(url: string, options: { method: string, headers?: Rec
|
|||||||
} else {
|
} else {
|
||||||
const json = await response.json();
|
const json = await response.json();
|
||||||
if (json.error && json.error !== '') {
|
if (json.error && json.error !== '') {
|
||||||
notifications.push("error", `Fehler bei Anfrage '${url}'`, json.error);
|
notifications.push("error", `Interner Fehler bei API-Anfrage`, `${url}\nJSON: ${JSON.stringify(json)}`);
|
||||||
}
|
}
|
||||||
return json;
|
return json;
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error: any) {
|
||||||
console.error(error);
|
if (error instanceof TypeError && /fetch|NetworkError/i.test(error.message)) {
|
||||||
|
console.log("Request failed - Is the targeted device online?")
|
||||||
|
} else {
|
||||||
|
console.log(typeof error, error instanceof TypeError, error.message);
|
||||||
|
console.error(error);
|
||||||
|
notifications.push("error", `Fehler bei API-Anfrage`, `${url}\nFehler: ${error}`);
|
||||||
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user