findByDateRange(new \DateTime('now - 1 day'), new \DateTime('now')); $line = [ 'label' => 'Relevés de la température', 'data' => [], 'borderColor' => 'rgb(255, 205, 86)', 'fill' => false, ]; $line2 = [ 'label' => 'Idéal le jour', 'data' => [], 'borderColor' => 'rgb(255, 200, 200)', 'fill' => false, ]; $line3 = [ 'label' => 'Minimum la nuit', 'data' => [], 'borderColor' => 'rgb(216, 234, 255)', 'fill' => false, ]; foreach ($entities as $entity) { $hour = (int) $entity->getDate()->format('H'); $labels[] = $entity->getDate()->format('H:i'); $line['data'][] = $entity->getValue(); $line2['data'][] = 27; $line3['data'][] = 23; } $datasets[] = $line; $datasets[] = $line2; $datasets[] = $line3; return $this->createGraphResponse($labels, $datasets); } /** * @Route("/api/monitoring/hygrometry", name="api_monitoring_hygrometry", methods={"GET"}) */ public function hygrometry(Request $request, HygrometryRepository $repository): JsonResponse { $labels = []; $datasets = []; $entities = $repository->findByDateRange(new \DateTime('now - 1 day'), new \DateTime('now')); $line = [ 'label' => 'Niveau d\'humidité de l\'atmosphère en %', 'data' => [], 'borderColor' => 'rgb(54, 162, 235)', 'backgroundColor' => 'rgb(216, 234, 255)', 'fill' => true, ]; $line2 = [ 'label' => 'Valeur maximale', 'data' => [], 'borderColor' => 'rgb(200, 200, 200)', 'fill' => false, ]; foreach ($entities as $entity) { $labels[] = $entity->getDate()->format('H:i'); $line['data'][] = $entity->getValue(); $line2['data'][] = 50; } $datasets[] = $line; $datasets[] = $line2; return $this->createGraphResponse($labels, $datasets); } protected function createGraphResponse(array $labels, array $datasets): JsonResponse { $config = [ 'data' => [ 'labels' => $labels, 'datasets' => $datasets, ], 'options' => [ 'responsive' => false, 'ratio' => 10, 'maintainAspectRatio' => false, 'legend' => [ 'align' => 'end', ], 'scales' => [ 'yAxes' => [[ 'ticks' => [ 'beginAtZero' => true, ], ]], ], ], ]; return $this->json($config); } }