import axios, { AxiosError } from "axios"; interface Server { id: number; networkId: number; name: string; description?: string; icon?: string; ipv4Address?: string; osDetails?: string; cpuDetails?: string; gpuDetails?: string; memoryDetails?: string; storageDetails?: string; monitoring: boolean; monitoringUrl?: string; managementUrl?: string; applications?: any[]; virtualMachines?: any[]; } interface AddServer { networkId: number; name: string; description?: string; icon?: string; } const useServers = () => { const getAllServers = (): Promise | string => { return axios.get('/api/servers/get_all') .then((response) => { return response.data.servers; }) .catch(err => { throw err.response?.data?.error || 'Failed to fetch servers'; }); }; const addServer = (server: AddServer): Promise | string => { return axios.post('/api/servers/add', server) .then((response) => { return response.data.server; }) .catch(err => { throw err.response?.data?.error || 'Failed to add server'; }); }; return { getAllServers, addServer, }; }; export default useServers;