2022-08-21 22:27:31 +02:00
|
|
|
import { request } from './request'
|
|
|
|
|
|
|
|
|
|
export type SensorInfo = {
|
2022-08-28 11:56:03 +02:00
|
|
|
id: number
|
|
|
|
|
name: string
|
|
|
|
|
authKey: string
|
2024-04-01 17:03:45 +02:00
|
|
|
lastContactAt?: number
|
2025-03-05 11:10:09 +01:00
|
|
|
type: 'rest' | 'mqtt'
|
|
|
|
|
mqttTopic?: string
|
|
|
|
|
mqttBrokerId?: number
|
|
|
|
|
mqttPath?: string
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export type SensorModifiableData = {
|
|
|
|
|
name: string
|
|
|
|
|
type: 'rest' | 'mqtt'
|
|
|
|
|
mqttTopic?: string
|
|
|
|
|
mqttBrokerId?: number
|
|
|
|
|
mqttPath?: string
|
2022-08-21 22:27:31 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export const getSensors = () => request<SensorInfo[]>('/api/sensors')
|
2022-08-28 11:56:03 +02:00
|
|
|
|
2025-03-05 11:10:09 +01:00
|
|
|
export const createSensor = (data: SensorModifiableData) =>
|
2022-08-28 11:56:03 +02:00
|
|
|
request<SensorInfo>('/api/sensors', {
|
|
|
|
|
method: 'POST',
|
|
|
|
|
headers: { 'content-type': 'application/json' },
|
2025-03-05 11:10:09 +01:00
|
|
|
body: JSON.stringify(data),
|
2022-08-28 11:56:03 +02:00
|
|
|
})
|
|
|
|
|
|
2025-03-05 11:10:09 +01:00
|
|
|
export const updateSensor = ({
|
|
|
|
|
id,
|
|
|
|
|
...body
|
|
|
|
|
}: { id: number } & SensorModifiableData) =>
|
2022-08-28 11:56:03 +02:00
|
|
|
request<SensorInfo>(`/api/sensors/${id}`, {
|
|
|
|
|
method: 'PUT',
|
|
|
|
|
headers: { 'content-type': 'application/json' },
|
2022-08-28 12:30:37 +02:00
|
|
|
body: JSON.stringify(body),
|
2022-08-28 11:56:03 +02:00
|
|
|
})
|
2022-08-28 21:47:36 +02:00
|
|
|
|
|
|
|
|
export const deleteSensor = (id: number) =>
|
2024-04-01 17:03:45 +02:00
|
|
|
request<void, 'void'>(`/api/sensors/${id}`, { method: 'DELETE' }, 'void')
|