feat: backport contact form api endpoint

This commit is contained in:
Björn Fromme
2025-12-10 18:00:51 +01:00
parent e7997f84eb
commit b9dfeb2d3e
8 changed files with 160 additions and 0 deletions
@@ -36,6 +36,8 @@ class ApiResponseParser extends AbstractParser
case 'Adressdaten_Ändern':
case 'Newsletter':
return (new PersonalDataParser())->parse($resultNode);
case 'Adresse_Neu':
return (new ContactFormResponseParser())->parse($resultNode);
case 'SelektionCRM':
case 'SelektionCRM_Ändern':
return (new CrmAttributesResponseParser())->parse($resultNode);
@@ -0,0 +1,24 @@
<?php
declare(strict_types=1);
namespace App\BusProNet\XmlParser;
use App\BusProNet\Model\ContactFormResponse;
use Symfony\Component\DomCrawler\Crawler;
class ContactFormResponseParser extends AbstractParser
{
public function parse(Crawler $node): ContactFormResponse
{
$addressId = (int) $node->filterXPath('//idadresse')->text();
$personId = (int) $node->filterXPath('//idperson')->text();
$isNewRecord = $this->getBoolValue($node->filterXPath('//neuanlage'));
return new ContactFormResponse(
addressId: $addressId,
personId: $personId,
isNewRecord: $isNewRecord,
);
}
}