1: <?php
2:
3: namespace LaravelUi5\Core\Controllers;
4:
5: use Illuminate\Contracts\View\Factory;
6: use Illuminate\Contracts\View\View;
7: use Illuminate\Foundation\Application;
8: use Illuminate\Http\Request;
9: use LaravelUi5\Core\Contracts\Ui5Context;
10: use LaravelUi5\Core\Services\ExecutableHandler;
11: use LaravelUi5\Core\Ui5\Contracts\Ui5ReportInterface;
12:
13: class ReportController
14: {
15: public function __invoke(
16: Request $request,
17: Ui5Context $context,
18: ExecutableHandler $handler,
19: string $slug
20: ): Factory|View|Application
21: {
22: /** @var Ui5ReportInterface $report */
23: $report = $context->artifact;
24:
25: $provider = $report->getProvider();
26:
27: $data = $handler->run($provider);
28:
29: return view($report->getReportView(), $data);
30: }
31: }
32: