chartService = $chartService; } /* #[Route('/sales/bar-chart/{startDate}/{endDate}/{granularity}', name: 'get_sales_for_bar_chart', requirements: [ 'startDate' => '\d{4}-\d{2}-\d{2}', // Matches YYYY-MM-DD 'endDate' => '\d{4}-\d{2}-\d{2}', // Matches YYYY-MM-DD 'granularity' => 'day|month|year', // Matches day, month, or year ])]*/ public function getChartData(Request $request): JsonResponse { // Utilisez la méthode getContent directement pour obtenir le contenu JSON $requestData = json_decode($request->getContent(), true); // Vérifiez si les clés correctes sont présentes if (!isset($requestData['startDate'], $requestData['endDate'], $requestData['granularity'])) { // Retournez une réponse d'erreur appropriée si des données sont manquantes return $this->json(['error' => 'Invalid request data. Make sure to provide startDate, endDate, and granularity.'], 400); } // Validate and transform the input data into a BarChartInput object. $input = new BarChartInput(); $input->start = $requestData['startDate']; $input->end = $requestData['endDate']; $input->granularity = $requestData['granularity']; // Call the service to get the chart data. $chartData = $this->chartService->getBarChartData($input); // Transform the results into the desired output format. $output = []; foreach ($chartData as $data) { $output[] = [ 'date' => $data->date, 'occurrences' => $data->occurrences, ]; } return $this->json($output); } }