From fbfffbb31aeb46f818a9516e055b26f074cbe9c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Fromme?= Date: Sat, 28 Mar 2026 10:18:34 +0100 Subject: [PATCH] fix: simplify trait to address incorrect arguments --- .../Booking/Create/Step3Controller.php | 28 +++++++++---------- .../Booking/Create/Step4Controller.php | 20 ++++++------- .../Booking/Traits/BookingCreateTrait.php | 10 ++----- 3 files changed, 23 insertions(+), 35 deletions(-) diff --git a/src/Controller/Booking/Create/Step3Controller.php b/src/Controller/Booking/Create/Step3Controller.php index ef5a00e..f187bce 100644 --- a/src/Controller/Booking/Create/Step3Controller.php +++ b/src/Controller/Booking/Create/Step3Controller.php @@ -76,13 +76,13 @@ class Step3Controller extends AbstractController $inquiryResponse = $this->apiClient->createBookingInquiry($bookingCreateDto); if ($inquiryResponse instanceof Notification) { - return $this->handleApiError( + $this->handleApiError( 'Booking inquiry failed', ['message' => $inquiryResponse->message], $inquiryResponse->message ?? 'Ein Fehler ist aufgetreten. Bitte versuche es erneut oder wende dich an den Kundenservice.', - $bookingCreateDto, - $form ); + + return $this->renderStepForm($bookingCreateDto, $form); } if (false === $inquiryResponse->isInquiryValid()) { @@ -109,13 +109,13 @@ class Step3Controller extends AbstractController $errorMessage .= ' '.$inquiryResponse->message; } - return $this->handleApiError( + $this->handleApiError( 'Booking inquiry validation failed', ['status' => $inquiryResponse->status, 'message' => $inquiryResponse->message], $errorMessage, - $bookingCreateDto, - $form ); + + return $this->renderStepForm($bookingCreateDto, $form); } // Validate price match (rounded to cent precision to avoid floating-point errors) @@ -133,7 +133,7 @@ class Step3Controller extends AbstractController $diagnostics = $this->priceMismatchDiagnostics->buildDiagnostics($bookingCreateDto, $inquiryResponse); $deltaBreakdown = $diagnostics['deltaBreakdown'] ?? []; - return $this->handleApiError( + $this->handleApiError( 'Price mismatch detected - payload incomplete', [ 'apiTotal' => $apiTotal, @@ -149,9 +149,9 @@ class Step3Controller extends AbstractController 'diagnostics' => $diagnostics, ], 'Preisabweichung festgestellt. Bitte wende dich an den Kundenservice.', - $bookingCreateDto, - $form ); + + return $this->renderStepForm($bookingCreateDto, $form); } // Validation successful - proceed to confirmation step @@ -164,28 +164,26 @@ class Step3Controller extends AbstractController return $this->redirectToRoute('app_booking_create_step_4'); } catch (TimeoutException $e) { - return $this->handleApiError( + $this->handleApiError( 'Booking inquiry timeout', [ 'exception' => $e->getMessage(), 'trace' => $e->getTraceAsString(), ], 'Die Anfrage hat zu lange gedauert. Bitte versuche es erneut oder wende dich an den Kundenservice.', - $bookingCreateDto, - $form ); } catch (\Exception $e) { - return $this->handleApiError( + $this->handleApiError( 'Booking inquiry exception', [ 'exception' => $e->getMessage(), 'trace' => $e->getTraceAsString(), ], 'Ein allgemeiner Fehler ist aufgetreten. Bitte wende dich an den Kundenservice.', - $bookingCreateDto, - $form ); } + + return $this->renderStepForm($bookingCreateDto, $form); } return $this->renderStepForm($bookingCreateDto, $form); diff --git a/src/Controller/Booking/Create/Step4Controller.php b/src/Controller/Booking/Create/Step4Controller.php index c3689ab..2ef0536 100644 --- a/src/Controller/Booking/Create/Step4Controller.php +++ b/src/Controller/Booking/Create/Step4Controller.php @@ -92,13 +92,13 @@ class Step4Controller extends AbstractController $bookingResponse = $this->apiClient->createBooking($bookingCreateDto); if ($bookingResponse instanceof Notification) { - return $this->handleApiError( + $this->handleApiError( 'Booking creation failed - API notification', ['message' => $bookingResponse->message], $bookingResponse->message ?? 'Ein Fehler ist aufgetreten. Bitte versuchen es erneut.', - $bookingCreateDto, - $form ); + + return $this->renderStepForm($bookingCreateDto, $form, $newsletterOptInVisible, $newsletterTargetEmail); } if (false === $bookingResponse->isBookingSuccessful()) { @@ -107,13 +107,13 @@ class Step4Controller extends AbstractController $errorMessage .= ' '.$bookingResponse->message; } - return $this->handleApiError( + $this->handleApiError( 'Booking creation unsuccessful', ['status' => $bookingResponse->status, 'message' => $bookingResponse->message], $errorMessage, - $bookingCreateDto, - $form ); + + return $this->renderStepForm($bookingCreateDto, $form, $newsletterOptInVisible, $newsletterTargetEmail); } $newsletterOptInSelected = $newsletterOptInVisible @@ -147,26 +147,22 @@ class Step4Controller extends AbstractController return $this->redirectToRoute('app_booking_create_success'); } catch (TimeoutException $e) { - return $this->handleApiError( + $this->handleApiError( 'Booking creation timeout', [ 'exception' => $e->getMessage(), 'trace' => $e->getTraceAsString(), ], 'Die Anfrage hat zu lange gedauert. Bitte versuche es erneut.', - $bookingCreateDto, - $form ); } catch (\Exception $e) { - return $this->handleApiError( + $this->handleApiError( 'Booking creation exception', [ 'exception' => $e->getMessage(), 'trace' => $e->getTraceAsString(), ], 'Ein technischer Fehler ist aufgetreten.', - $bookingCreateDto, - $form ); } } diff --git a/src/Controller/Booking/Traits/BookingCreateTrait.php b/src/Controller/Booking/Traits/BookingCreateTrait.php index 365dc52..9be709c 100644 --- a/src/Controller/Booking/Traits/BookingCreateTrait.php +++ b/src/Controller/Booking/Traits/BookingCreateTrait.php @@ -5,9 +5,7 @@ declare(strict_types=1); namespace App\Controller\Booking\Traits; use App\Form\Model\BookingDto; -use Symfony\Component\Form\FormInterface; use Symfony\Component\HttpFoundation\RedirectResponse; -use Symfony\Component\HttpFoundation\Response; /** * Provides common functionality for booking creation controllers. @@ -82,18 +80,14 @@ trait BookingCreateTrait } /** - * Handles API errors by logging, adding flash message, and rendering the form. + * Handles API errors by logging and adding a flash message. */ private function handleApiError( string $logMessage, array $context, string $flashMessage, - BookingDto $bookingCreateDto, - FormInterface $form, - ): Response { + ): void { $this->logger->error($logMessage, $context); $this->addFlash('error', $flashMessage); - - return $this->renderStepForm($bookingCreateDto, $form); } }