From 96d4b8ed45d4b4663a66f71ecbe962a8ead2bd59 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Fromme?= Date: Tue, 6 Jan 2026 14:05:51 +0100 Subject: [PATCH] fix: apply correct return type and response handling --- src/BusProNet/ApiClient.php | 6 +++--- .../{ContactFormResponse.php => RegistrationResponse.php} | 2 +- src/BusProNet/XmlParser/ContactFormResponseParser.php | 6 +++--- src/Controller/RegistrationController.php | 3 ++- 4 files changed, 9 insertions(+), 8 deletions(-) rename src/BusProNet/Model/{ContactFormResponse.php => RegistrationResponse.php} (89%) diff --git a/src/BusProNet/ApiClient.php b/src/BusProNet/ApiClient.php index 756d008..21b7422 100644 --- a/src/BusProNet/ApiClient.php +++ b/src/BusProNet/ApiClient.php @@ -9,7 +9,7 @@ use App\BusProNet\Model\BaseData; use App\BusProNet\Model\Booking; use App\BusProNet\Model\BookingResponse; use App\BusProNet\Model\BookingUpdate; -use App\BusProNet\Model\ContactFormResponse; +use App\BusProNet\Model\RegistrationResponse; use App\BusProNet\Model\CrmAttributes; use App\BusProNet\Model\Notification; use App\BusProNet\Model\PersonalData; @@ -79,7 +79,7 @@ class ApiClient /** * @throws ApiClientException */ - public function register(RegistrationDto $registrationData): Notification + public function register(RegistrationDto $registrationData): Notification|RegistrationResponse { $data = [ 'user' => $this->config['bpn_username'], @@ -144,7 +144,7 @@ class ApiClient public function createAddress( PersonalData $personalData, bool $debug = false, - ): ContactFormResponse|Notification { + ): RegistrationResponse|Notification { $data = [ 'user' => $this->config['bpn_username'], 'key' => $this->createKey($this->config['bpn_username'], $this->config['bpn_password'], static::TYPE_CUSTOMER_DATA), diff --git a/src/BusProNet/Model/ContactFormResponse.php b/src/BusProNet/Model/RegistrationResponse.php similarity index 89% rename from src/BusProNet/Model/ContactFormResponse.php rename to src/BusProNet/Model/RegistrationResponse.php index b62e158..dbafce3 100644 --- a/src/BusProNet/Model/ContactFormResponse.php +++ b/src/BusProNet/Model/RegistrationResponse.php @@ -4,7 +4,7 @@ declare(strict_types=1); namespace App\BusProNet\Model; -class ContactFormResponse +class RegistrationResponse { public function __construct( public readonly int $addressId, diff --git a/src/BusProNet/XmlParser/ContactFormResponseParser.php b/src/BusProNet/XmlParser/ContactFormResponseParser.php index e67bacd..4ed540c 100644 --- a/src/BusProNet/XmlParser/ContactFormResponseParser.php +++ b/src/BusProNet/XmlParser/ContactFormResponseParser.php @@ -4,18 +4,18 @@ declare(strict_types=1); namespace App\BusProNet\XmlParser; -use App\BusProNet\Model\ContactFormResponse; +use App\BusProNet\Model\RegistrationResponse; use Symfony\Component\DomCrawler\Crawler; class ContactFormResponseParser extends AbstractParser { - public function parse(Crawler $node): ContactFormResponse + public function parse(Crawler $node): RegistrationResponse { $addressId = (int) $node->filterXPath('//idadresse')->text(); $personId = (int) $node->filterXPath('//idperson')->text(); $isNewRecord = $this->getBoolValue($node->filterXPath('//neuanlage')); - return new ContactFormResponse( + return new RegistrationResponse( addressId: $addressId, personId: $personId, isNewRecord: $isNewRecord, diff --git a/src/Controller/RegistrationController.php b/src/Controller/RegistrationController.php index 0202112..6c545ce 100644 --- a/src/Controller/RegistrationController.php +++ b/src/Controller/RegistrationController.php @@ -4,6 +4,7 @@ namespace App\Controller; use App\BusProNet\ApiClient; use App\BusProNet\Exception\ApiClientException; +use App\BusProNet\Model\Notification; use App\Form\Model\RegistrationDto; use App\Form\RegistrationType; use Psr\Log\LoggerInterface; @@ -34,7 +35,7 @@ class RegistrationController extends AbstractController if ($form->isSubmitted() && $form->isValid()) { try { $response = $this->apiClient->register($registrationData); - if (true === $response->isError()) { + if ($response instanceof Notification && true === $response->isError()) { $this->addFlash('error', 'Möglicherweise bist du bereits registriert. Bitte setze dein Passwort zurück.'); } else { $this->addFlash('success', 'Du erhältst in Kürze eine E-Mail mit einem Link zum (Zurück)setzen deines Passworts.');