mirror of
https://github.com/crocofied/CoreControl.git
synced 2025-12-17 15:36:50 +00:00
57 lines
1.3 KiB
TypeScript
57 lines
1.3 KiB
TypeScript
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<Server[]> | 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<Server> | 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; |