/**
  * @param Request $request
  * @param EventIdentifier $eventIdentifier
  * @return JsonResponse
  */
 public function renderAction(Request $request, EventIdentifier $eventIdentifier)
 {
     if ($request->get('decimal')) {
         $decimal = $request->get('decimal');
     } else {
         $decimal = 0;
     }
     if ($request->get('limit')) {
         $limit = max($request->get('limit'), 2);
     } else {
         $limit = 2;
     }
     $conn = $this->container->get('database_connection');
     $sql = "SELECT value FROM `event` WHERE event_identifier_id=" . $eventIdentifier->getId() . " ORDER BY created desc limit " . $limit;
     $rows = $conn->query($sql)->fetchAll();
     $chart = new \StdClass();
     $datas = [];
     foreach ($rows as $row) {
         $datas[]['value'] = round($row['value'], $decimal);
     }
     $chart->item = $datas;
     $response = new JsonResponse($chart);
     $response->setEncodingOptions($response->getEncodingOptions() | JSON_PRETTY_PRINT);
     return $response;
 }
 public function renderAction(Request $request, EventIdentifier $eventIdentifier)
 {
     if ($request->get('interval')) {
         $intervalType = $request->get('interval');
     } else {
         $intervalType = 'd';
     }
     if ($request->get('decimal')) {
         $decimal = $request->get('decimal');
     } else {
         $decimal = 0;
     }
     if ($request->get('labelInterval')) {
         $labelInterval = $request->get('labelInterval');
     } else {
         $labelInterval = 1;
     }
     switch ($intervalType) {
         case 'd':
             $groupDateForm = "%Y%m%d";
             $selectDateForm = "%d.%m.%Y";
             $interval = 'P1M';
             break;
         case 'h':
             $groupDateForm = "%Y%m%d%H";
             $selectDateForm = "%h %p";
             $interval = 'P1D';
             break;
         default:
             return new JsonResponse(['status' => 'error', 'message' => 'IntervalType ' . $intervalType . ' does not exists.'], 404);
     }
     $startDate = new \DateTime('now');
     $startDate->sub(new \DateInterval($interval));
     $conn = $this->container->get('database_connection');
     $sql = "SELECT AVG(value) as avgValue, DATE_FORMAT(created, '" . $selectDateForm . "') as timespan FROM `event` WHERE event_identifier_id=" . $eventIdentifier->getId() . " and created > '" . $startDate->format('Y-m-d H:i:s') . "' GROUP BY DATE_FORMAT(created, '" . $groupDateForm . "')";
     $rows = $conn->query($sql)->fetchAll();
     $chart = new \StdClass();
     $chart->x_axis = ['labels' => []];
     $datas = [];
     $i = 0;
     foreach ($rows as $row) {
         if ($i % $labelInterval == 0) {
             $chart->x_axis['labels'][] = strtolower($row['timespan']);
         } else {
             $chart->x_axis['labels'][] = '';
         }
         $i++;
         $datas[] = round($row['avgValue'], $decimal);
     }
     $chart->series = [['data' => $datas]];
     $response = new JsonResponse($chart);
     $response->setEncodingOptions($response->getEncodingOptions() | JSON_PRETTY_PRINT);
     return $response;
 }