Spaces:
Sleeping
Sleeping
| 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(); | |