Files
sa4cps-frontend/src/services/sensorsApi.ts
rafaeldpsilva 3299472c85 Refactor stores for modularity and API type updates
- Split energy store into sensor, room, analytics, and websocket stores
- Add new analytics, room, sensor, and websocket stores - Update API
types for sensors (SensorDevice, SensorAction) - Update sensorsApi to
use new SensorDevice type - Add central index for store exports and
types - Refactor energy store to delegate to modular stores - Remove
legacy code and consolidate API logic
2025-09-25 17:09:42 +01:00

74 lines
1.7 KiB
TypeScript

import {
apiClient,
type SensorDevice,
type SensorReading,
type DataQuery,
type DataResponse,
type SensorType,
type SensorStatus,
} from './api'
export const sensorsApi = {
async getSensors(params?: {
room?: string
sensor_type?: SensorType
status?: SensorStatus
}): Promise<SensorDevice[]> {
return apiClient.get<SensorDevice[]>('/api/v1/sensors/get', params)
},
async getSensor(sensorId: string): Promise<SensorDevice> {
return apiClient.get<SensorDevice>(`/api/v1/sensors/${sensorId}`)
},
async getSensorData(
sensorId: string,
params?: {
start_time?: number
end_time?: number
limit?: number
offset?: number
},
): Promise<DataResponse> {
return apiClient.get<DataResponse>(`/api/v1/sensors/${sensorId}/data`, params)
},
async queryData(query: DataQuery): Promise<DataResponse> {
return apiClient.post<DataResponse>('/api/v1/data/query', query)
},
async updateSensorMetadata(
sensorId: string,
metadata: Record<string, any>,
): Promise<{ message: string }> {
return apiClient.put<{ message: string }>(`/api/v1/sensors/${sensorId}/metadata`, metadata)
},
async deleteSensor(sensorId: string): Promise<{
message: string
readings_deleted: number
metadata_deleted?: boolean
}> {
return apiClient.delete(`/api/v1/sensors/${sensorId}`)
},
async exportData(params: {
start_time: number
end_time: number
sensor_ids?: string
format?: 'json' | 'csv'
}): Promise<{
data: SensorReading[]
count: number
export_params: any
}> {
return apiClient.get<{
data: SensorReading[]
count: number
export_params: any
}>('/api/v1/export', params)
},
}
export default sensorsApi