Newer
Older
smart-home-server / webclient / src / js / sh / modules / AreasApi.js
export class AreasApi {
	constructor(core) {
		this.core = core;
	}

	// GET /api/v1/areas/list
	list(cb) {
		return this.core.api_get("/api/v1/areas/list", cb);
	}

	// GET /api/v1/areas/id/{{area_id}}/list
	inner_list(area_id, cb) {
		const safe = encodeURIComponent(String(area_id));
		return this.core.api_get(`/api/v1/areas/id/${safe}/list`, cb);
	}

	// POST /api/v1/areas/new-area
	new_area(payload, cb) {
		// payload: { type, alias, display_name }
		return this.core.api_post("/api/v1/areas/new-area", payload, cb);
	}

	// GET /api/v1/areas/id/{{area_id}}/remove
	remove(area_id, cb) {
		const safe = encodeURIComponent(String(area_id));
		return this.core.api_get(`/api/v1/areas/id/${safe}/remove`, cb);
	}

	// POST /api/v1/areas/place-in-area
	place_in_area(payload, cb) {
		// payload: { target_area_id, place_in_area_id }
		return this.core.api_post("/api/v1/areas/place-in-area", payload, cb);
	}

	// POST /api/v1/areas/update-display-name
	update_display_name(payload, cb) {
		// payload: { area_id, display_name }
		return this.core.api_post("/api/v1/areas/update-display-name", payload, cb);
	}

	// POST /api/v1/areas/update-alias
	update_alias(payload, cb) {
		// payload: { area_id, new_alias }
		return this.core.api_post("/api/v1/areas/update-alias", payload, cb);
	}

	// GET /api/v1/areas/id/{{area_id}}/devices
	devices(area_id, cb) {
		const safe = encodeURIComponent(String(area_id));
		return this.core.api_get(`/api/v1/areas/id/${safe}/devices`, cb);
	}

	// GET /api/v1/areas/id/{{area_id}}/unassign-from-area
	unassign_from_area(area_id, cb) {
		const safe = encodeURIComponent(String(area_id));
		return this.core.api_get(`/api/v1/areas/id/${safe}/unassign-from-area`, cb);
	}

	// GET /api/v1/areas/types/list
	types_list(cb) {
		return this.core.api_get("/api/v1/areas/types/list", cb);
	}

	// GET /api/v1/areas/reboot_devices
	// GET /api/v1/areas/id/{{area_id}}/reboot_devices
	reboot_devices(area_id, cb) {
		if (area_id === undefined || area_id === null) {
			return this.core.api_get("/api/v1/areas/reboot_devices", cb);
		}
		const safe = encodeURIComponent(String(area_id));
		return this.core.api_get(`/api/v1/areas/id/${safe}/reboot_devices`, cb);
	}
}