From cb8bd40a7e9cf8f898509238b4cb67fbfdd4d120 Mon Sep 17 00:00:00 2001 From: JonatanRek Date: Sat, 16 May 2020 22:11:20 +0200 Subject: [PATCH] Cherry pick Rooms API --- app/api/RoomsApi.php | 39 +++++++++++++-------------------------- 1 file changed, 13 insertions(+), 26 deletions(-) diff --git a/app/api/RoomsApi.php b/app/api/RoomsApi.php index de417a1..340f09d 100644 --- a/app/api/RoomsApi.php +++ b/app/api/RoomsApi.php @@ -4,36 +4,23 @@ class RoomsApi extends ApiController{ public function default(){ //$this->requireAuth(); - $rooms = []; - $roomsData = RoomManager::getAllRooms(); + $response = []; + $roomIds = []; + $roomsData = RoomManager::getRoomsDefault(); + + foreach ($roomsData as $roomKey => $room) { + $roomIds[] = $room['room_id']; + } + + $subDevicesData = SubDeviceManager::getSubdevicesByRoomIds($roomIds); + 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[] = [ + $response[] = [ 'room_id' => $roomData['room_id'], 'name' => $roomData['name'], - 'widgets' => $widgets, + 'widgets' => isset($subDevicesData[$roomData['room_id']]) ? $subDevicesData[$roomData['room_id']] : [], ]; } - $this->response($rooms); + $this->response($response); } }