Newer
Older
smart-home-server / webclient / src / js / sh / modules / DevicesApi.js
/* =========================
   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);
	}
}