fix: adopt response format of bpn personal data endpoint
This commit is contained in:
1 parent
7a3d3a3a96
commit
8907233ef5
6 files changed
+51
-2
No files matched your search
@@ -16,6 +16,7 @@ use App\BusProNet\Model\CrmAttributes;
|
||||
use App\BusProNet\Model\ExtendedServiceAvailabilityResponse;
|
||||
use App\BusProNet\Model\Notification;
|
||||
use App\BusProNet\Model\PersonalData;
|
||||
use App\BusProNet\Model\PersonalDataUpdateResponse;
|
||||
use App\BusProNet\Model\PromoVoucher;
|
||||
use App\BusProNet\Model\PurchaseVoucher;
|
||||
use App\BusProNet\Model\RegistrationResponse;
|
||||
@@ -127,7 +128,7 @@ class ApiClient
|
||||
string $password,
|
||||
PersonalData $personalData,
|
||||
bool $debug = false,
|
||||
): Notification|PersonalData {
|
||||
): Notification|PersonalDataUpdateResponse {
|
||||
$data = [
|
||||
'user' => $this->config['bpn_username'],
|
||||
'key' => $this->createKey($this->config['bpn_username'], $this->config['bpn_password'], static::TYPE_CUSTOMER_DATA),
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\BusProNet\Model;
|
||||
|
||||
class PersonalDataUpdateResponse
|
||||
{
|
||||
public function __construct(
|
||||
public readonly ?int $addressId,
|
||||
public readonly ?int $personId,
|
||||
public readonly bool $changed,
|
||||
) {
|
||||
}
|
||||
}
|
||||
@@ -38,9 +38,10 @@ class ApiResponseParser extends AbstractParser
|
||||
|
||||
switch ($subType) {
|
||||
case 'Adressdaten':
|
||||
case 'Adressdaten_Ändern':
|
||||
case 'Newsletter':
|
||||
return (new PersonalDataParser())->parse($resultNode);
|
||||
case 'Adressdaten_Ändern':
|
||||
return (new PersonalDataUpdateParser())->parse($resultNode);
|
||||
case 'Adresse_Neu':
|
||||
return (new ContactFormResponseParser())->parse($resultNode);
|
||||
case 'SelektionCRM':
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\BusProNet\XmlParser;
|
||||
|
||||
use App\BusProNet\Model\PersonalDataUpdateResponse;
|
||||
use Symfony\Component\DomCrawler\Crawler;
|
||||
|
||||
class PersonalDataUpdateParser extends AbstractParser
|
||||
{
|
||||
public function parse(Crawler $node): PersonalDataUpdateResponse
|
||||
{
|
||||
return new PersonalDataUpdateResponse(
|
||||
addressId: $this->getIntOrNullValue($node->filterXPath('//idadresse')),
|
||||
personId: $this->getIntOrNullValue($node->filterXPath('//idperson')),
|
||||
changed: $this->getBoolValue($node->filterXPath('//änderung')),
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user