src/Controller/ReportController.php line 21
<?phpnamespace App\Controller;use App\Presenter\TablePresenter;use App\ReportService;use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;use Symfony\Component\HttpFoundation\Response;use Symfony\Component\Routing\Annotation\Route;#[Route('/report')]class ReportController extends AbstractController{public function __construct(private TablePresenter $tablePresenter,){}#[Route('/', name: 'app_report', methods: 'GET')]public function report(ReportService $reportService): Response{$donations = $reportService->getDonationsReportByAudience();$refills =$reportService->getRefillsReportByAudience();$scans = $reportService->getScansReportByAudience();$data = ['meta' => $scans['meta'],'donationsView' => $this->buildTablePresentation($donations['data'], ['Time', 'User Email', 'JOENATION Amount'], $donations['emptyDataText'])->renderView(),'refillsView' => $this->buildTablePresentation($refills['data'], ['Time', 'User Email', 'Refill Amount'], $refills['emptyDataText'])->renderView(),'scansView' => $this->buildTablePresentation($scans['data'], ['Scan', 'Tag', 'User Email', 'Current JOENATION Level'], $scans['emptyDataText'])->renderView(),];return $this->render('home/report.html.twig', ['data' => $data]);}private function buildTablePresentation(array $data, array $header = [], string $emptyDataText = ''): TablePresenter{return $this->tablePresenter->setHeader($header)->setRows($data)->setEmptyDataText($emptyDataText);}}