/* =========================
Devices module
========================= */
export class DevicesApi {
constructor(core) {
this.core = core;
}
// GET /api/v1/devices/list
list(cb) {
return this.core.api_get("/api/v1/devices/list", cb);
}
// GET /api/v1/devices/scanning/setup
scanning_setup(cb) {
return this.core.api_get("/api/v1/devices/scanning/setup", cb);
}
// GET /api/v1/devices/scanning/all
scanning_all(cb) {
return this.core.api_get("/api/v1/devices/scanning/all", cb);
}
// POST /api/v1/devices/setup/new-device
setup_new_device(payload, cb) {
// payload: { device_ip, alias, name, description }
return this.core.api_post("/api/v1/devices/setup/new-device", payload, cb);
}
// GET /api/v1/devices/id/{{id}}/info
info(id, cb) {
const safe = encodeURIComponent(String(id));
return this.core.api_get(`/api/v1/devices/id/${safe}/info`, cb);
}
// GET /api/v1/devices/id/{{id}}
get(id, cb) {
const safe = encodeURIComponent(String(id));
return this.core.api_get(`/api/v1/devices/id/${safe}`, cb);
}
// GET /api/v1/devices/id/{{id}}/status
status(id, cb) {
const safe = encodeURIComponent(String(id));
return this.core.api_get(`/api/v1/devices/id/${safe}/status`, cb);
}
// POST /api/v1/devices/action
action(payload, cb) {
// payload: { device_id, action, params }
return this.core.api_post("/api/v1/devices/action", payload, cb);
}
// GET /api/v1/devices/id/{{id}}/remove
remove(id, cb) {
const safe = encodeURIComponent(String(id));
return this.core.api_get(`/api/v1/devices/id/${safe}/remove`, cb);
}
// GET /api/v1/devices/id/{{id}}/reboot
reboot(id, cb) {
const safe = encodeURIComponent(String(id));
return this.core.api_get(`/api/v1/devices/id/${safe}/reboot`, cb);
}
// POST /api/v1/areas/place-in-area
place_in_area(payload, cb) {
// payload: { target_id, place_in_area_id }
return this.core.api_post("/api/v1/devices/place-in-area", payload, cb);
}
// GET /api/v1/devices/id/{{target_id}}/unassign-from-area
unassign_from_area(target_id, cb) {
const safe = encodeURIComponent(String(target_id));
return this.core.api_get(`/api/v1/areas/id/${safe}/unassign-from-area`, cb);
}
}