public function getRoomMetrics(SS_HTTPRequest $request) { try { $summit_id = intval($request->param('SUMMIT_ID')); $summit = $this->summit_repository->getById($summit_id); $event_id = intval($request->param('EVENT_ID')); $event = $this->event_repository->getById($event_id); $time_offset = $request->getVar('offset'); if (is_null($summit)) { throw new NotFoundEntityException('Summit', sprintf(' id %s', $summit_id)); } if (is_null($event)) { throw new NotFoundEntityException('Event', sprintf(' id %s', $event_id)); } $time_offset = $summit->convertDateFromTimeZone2UTC($event->getBeginDateYMD() . ' ' . $time_offset); $metrics = $this->room_metrics_repository->getByRoomAndDate($event->LocationID, $event->getStartDateUTC(), $event->getEndDateUTC(), $time_offset)->limit(10); $metrics_array = array(); foreach ($metrics as $metric) { $type = $metric->Type()->Type; $unit = $metric->Type()->Unit; $time = $summit->convertDateFromUTC2TimeZone(date('H:i:s', $metric->TimeStamp), 'g:iA'); $data = array($time, $metric->Value); if (!isset($metrics_array[$type])) { $metrics_array[$type] = array('type' => $type, 'unit' => $unit, 'metrics' => array()); } $metrics_array[$type]['metrics'][] = $data; } return $this->ok($metrics_array); } catch (NotFoundEntityException $ex2) { SS_Log::log($ex2->getMessage(), SS_Log::WARN); return $this->notFound($ex2->getMessage()); } catch (Exception $ex) { SS_Log::log($ex->getMessage(), SS_Log::ERR); return $this->serverError(); } }