diff --git a/packages/ep_products/Classes/Controller/TravelinfoController.php b/packages/ep_products/Classes/Controller/TravelinfoController.php index 8e2e44b..4d640fe 100644 --- a/packages/ep_products/Classes/Controller/TravelinfoController.php +++ b/packages/ep_products/Classes/Controller/TravelinfoController.php @@ -45,25 +45,35 @@ class TravelinfoController extends ActionController // return 404 in case no travel info is available as last resort if (null === $travelInfo) { - $response = GeneralUtility::makeInstance(ErrorController::class)->pageNotFoundAction( - $this->request, - 'Reiseinformationen nicht gefunden' - ); - throw new ImmediateResponseException($response, 1731071856); + $this->notFound(); } $this->handleRequest($travelCode, $travelInfo); return $this->htmlResponse(); } - public function travelInfoAction(Travelinfo $travelInfo): ResponseInterface + public function travelInfoAction(?Travelinfo $travelInfo = null): ResponseInterface { + // the page itself (/reiseinformationen/) without a travel info or code + if (null === $travelInfo) { + $this->notFound(); + } + $travelCode = $travelInfo->getTravelCode(); $this->handleRequest($travelCode, $travelInfo); return $this->htmlResponse(); } + private function notFound(): never + { + $response = GeneralUtility::makeInstance(ErrorController::class)->pageNotFoundAction( + $this->request, + 'Reiseinformationen nicht gefunden' + ); + throw new ImmediateResponseException($response, 1731071856); + } + private function handleRequest(string $travelCode, Travelinfo $travelInfo) {