Spaces:
Sleeping
Sleeping
File size: 1,532 Bytes
5b7eaab | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 | const API_BASE = 'http://localhost:5208';
const API_KEY = 'dev-key';
class ApiService {
async request(endpoint, options = {}) {
const url = `${API_BASE}${endpoint}`;
const config = {
headers: {
'Content-Type': 'application/json',
'X-Api-Key': API_KEY,
...options.headers,
},
...options,
};
try {
const response = await fetch(url, config);
if (!response.ok) {
throw new Error(`HTTP error! status: ${response.status}`);
}
return await response.json();
} catch (error) {
console.error(`API request failed for ${endpoint}:`, error);
throw error;
}
}
// Risk assessment endpoints
async getRiskAssessment(machineId) {
return this.request(`/risk/${machineId}`);
}
async getRiskHistory(machineId, take = 20) {
return this.request(`/risk/${machineId}/history?take=${take}`);
}
// Model endpoints
async getModelMeta() {
return this.request('/model/meta');
}
// Device trust endpoints
async getTrustedDevices() {
return this.request('/trust/devices');
}
// Machine endpoints
async getMachines() {
return this.request('/machines');
}
// Demo endpoints
async seedDemo() {
return this.request('/demo/seed', { method: 'POST' });
}
async clearDemo() {
return this.request('/demo/clear', { method: 'POST' });
}
async evictStale() {
return this.request('/demo/evict', { method: 'POST' });
}
}
export const apiService = new ApiService();
|