import { apiGet, apiPost } from "../client";
import { unifyDeviceFields } from "../mappers";
function safeId(id) {
return encodeURIComponent(String(id));
}
function mapDevicesResponse(result) {
if (!result.ok) {
return result;
}
const devices = result.data?.data?.devices || [];
return {
...result,
data: {
...result.data,
data: {
...result.data?.data,
devices: devices.map(unifyDeviceFields),
},
},
};
}
export const devicesApi = {
async list() {
return mapDevicesResponse(await apiGet("/api/v1/devices/list"));
},
status(id, options) {
return apiGet(`/api/v1/devices/id/${safeId(id)}/status`, options);
},
reboot(id) {
return apiGet(`/api/v1/devices/id/${safeId(id)}/reboot`);
},
action(payload) {
return apiPost("/api/v1/devices/action", payload);
},
scanningSetup(options) {
return apiGet("/api/v1/devices/scanning/setup", options);
},
scanningAll(options) {
return apiGet("/api/v1/devices/scanning/all", options);
},
setupNewDevice(payload) {
return apiPost("/api/v1/devices/setup/new-device", payload);
},
};