Files
wled-controller/frontend/src/api/devices.ts
2025-12-10 18:07:21 +00:00

40 lines
1.0 KiB
TypeScript

import { apiClient } from './client';
import { Device, PingResult } from './types';
export interface CreateDeviceInput {
name: string;
ipAddress: string;
port?: number;
enabled?: boolean;
}
export interface UpdateDeviceInput {
name?: string;
ipAddress?: string;
port?: number;
enabled?: boolean;
}
export const deviceApi = {
getAll: () => apiClient.get<Device[]>('/devices'),
getById: (id: string) => apiClient.get<Device>(`/devices/${id}`),
create: (data: CreateDeviceInput) => apiClient.post<Device>('/devices', data),
update: (id: string, data: UpdateDeviceInput) =>
apiClient.put<Device>(`/devices/${id}`, data),
delete: (id: string) => apiClient.delete(`/devices/${id}`),
ping: (id: string) => apiClient.post<PingResult>(`/devices/${id}/ping`),
turnOn: (id: string) => apiClient.post(`/devices/${id}/turn-on`),
turnOff: (id: string) => apiClient.post(`/devices/${id}/turn-off`),
turnOnAll: () => apiClient.post('/devices/all/turn-on'),
turnOffAll: () => apiClient.post('/devices/all/turn-off'),
};