export const name = "Raptor"; export const url = "https://status.raptortech.com/"; const API_URL = "https://status.raptortech.com/1.0/status/6501d5abfab4ce052d52e315"; // Status.io status_code → dashboard status function mapStatusCode(code) { if (code === 100) return "operational"; if (code === 200) return "degraded"; // planned maintenance if (code >= 300 && code < 500) return "degraded"; // degraded / partial disruption if (code >= 500) return "outage"; // service disruption / security event return "unknown"; } export async function checkStatus() { const res = await fetch(API_URL); if (!res.ok) { throw new Error(`Raptor status request failed (${res.status})`); } const data = await res.json(); const result = data.result ?? {}; const overall = result.status_overall ?? {}; const status = mapStatusCode(overall.status_code); const incidents = result.incidents ?? []; let message; if (incidents.length > 0) { message = incidents .map((i) => { const components = (i.containers_affected ?? []) .map((c) => c.name) .join(", "); return components ? `${i.name} (${components})` : i.name; }) .join(" | "); } else { message = overall.status ?? "All services operational."; } return { name, status, message, lastUpdated: new Date().toISOString(), }; }