Use direct backend URLs for inventory API and guard JSON parsing
CI / basic-check (push) Has been cancelled

This commit is contained in:
Perplexity Bot
2026-08-04 19:53:12 +00:00
parent eb0e7b8f97
commit d16dcfe66e
+7 -2
View File
@@ -4,17 +4,22 @@ async function handleResponse<T>(response: Response): Promise<T> {
if (!response.ok) { if (!response.ok) {
throw new Error(`API error: ${response.status}`); throw new Error(`API error: ${response.status}`);
} }
const contentType = response.headers.get('content-type') || '';
if (!contentType.includes('application/json')) {
const text = await response.text();
throw new Error(`API returned non-JSON response: ${text.slice(0, 80)}`);
}
return response.json() as Promise<T>; return response.json() as Promise<T>;
} }
export async function fetchInventoryTree(): Promise<InventoryTreeNode[]> { export async function fetchInventoryTree(): Promise<InventoryTreeNode[]> {
const response = await fetch('/inventory/tree'); const response = await fetch('http://127.0.0.1:8000/inventory/tree');
const data = await handleResponse<ListResponse<InventoryTreeNode>>(response); const data = await handleResponse<ListResponse<InventoryTreeNode>>(response);
return data.items; return data.items;
} }
export async function fetchNodeContext(id: string): Promise<NodeContext> { export async function fetchNodeContext(id: string): Promise<NodeContext> {
const response = await fetch(`/inventory/nodes/${id}/context`); const response = await fetch(`http://127.0.0.1:8000/inventory/nodes/${id}/context`);
const data = await handleResponse<EntityResponse<NodeContext>>(response); const data = await handleResponse<EntityResponse<NodeContext>>(response);
return data.item; return data.item;
} }