40 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
 | 
						|
class RoomsApi extends ApiController{
 | 
						|
 | 
						|
	public function default(){
 | 
						|
		//$this->requireAuth();
 | 
						|
		$rooms = [];
 | 
						|
		$roomsData = RoomManager::getAllRooms();
 | 
						|
		foreach ($roomsData as $roomKey => $roomData) {
 | 
						|
 | 
						|
			$widgets = [];
 | 
						|
			$devicesData = DeviceManager::getAllDevicesInRoom($roomData['room_id']);
 | 
						|
			foreach ($devicesData as $deviceKey => $deviceData) {
 | 
						|
 | 
						|
				$subDevicesData = SubDeviceManager::getAllSubDevices($deviceData['device_id']);
 | 
						|
				foreach ($subDevicesData as $subDeviceKey => $subDeviceData) {
 | 
						|
 | 
						|
					$lastRecord = RecordManager::getLastRecord($subDeviceData['subdevice_id']);
 | 
						|
					$widgets[] = [
 | 
						|
						'subdevice_id' => $subDeviceData['subdevice_id'],
 | 
						|
						'device_id' =>  $deviceData['device_id'],
 | 
						|
						'name' => $deviceData['name'],
 | 
						|
						'type' => $subDeviceData['type'],
 | 
						|
						'icon' => $deviceData['icon'],
 | 
						|
						'value' => $lastRecord['value'],
 | 
						|
						'unit' => $subDeviceData['unit'],
 | 
						|
					];
 | 
						|
				}
 | 
						|
			}
 | 
						|
 | 
						|
			$rooms[] = [
 | 
						|
				'room_id' => $roomData['room_id'],
 | 
						|
				'name' => $roomData['name'],
 | 
						|
				'widgets' => $widgets,
 | 
						|
			];
 | 
						|
		}
 | 
						|
		$this->response($rooms);
 | 
						|
	}
 | 
						|
}
 |