wip: continue implemntation

This commit is contained in:
Björn Fromme
2024-11-22 17:30:20 +01:00
parent bd13ae6537
commit d3786795e4
26 changed files with 798 additions and 494 deletions
+9 -8
View File
@@ -3,6 +3,7 @@
namespace App\BusProNet;
use App\BusProNet\ApiResponseParser\ResponseParser;
use App\BusProNet\DataProcessor\BookingDataProcessor;
use App\BusProNet\Exception\ApiClientException;
use App\BusProNet\Model\BaseData;
use App\BusProNet\Model\Booking;
@@ -24,7 +25,7 @@ class ApiClient
public const TYPE_NOTIFICATION = 'HINWEIS';
public const TYPE_CUSTOMER_DATA = 'KUNDENKONTO';
public const TYPE_BASE_DATA_COUNTRIES = 'STAMMLAENDER';
public const TYPE_MUTABLE_FIELDS = 'MOEGLICHEAENDERUNGEN';
public const TYPE_MUTABLE_DATA = 'MOEGLICHEAENDERUNGEN';
public const TYPE_AVAILABILITY = 'VERFUEGBARKEIT';
public const TYPE_BOOKING_UPDATE = 'BUCHUNGAENDERUNG';
@@ -113,15 +114,15 @@ class ApiClient
public function updateBooking(BookingData $formData, bool $dryRun = true): Notification|BookingUpdate
{
$booking = $formData->booking;
$mode = $dryRun ? 'Anfrage' : 'Buchung';
$payload = (new BookingDataProcessor())->createUpdateRequestPayload($formData);
$data = [
'user' => $this->config['bpn_username'],
'key' => $this->createKey($this->config['bpn_username'], $this->config['bpn_password'], static::TYPE_BOOKING_UPDATE),
'satz' => ['@typ' => static::TYPE_BOOKING_UPDATE],
'buchungsart' => $mode,
...$booking->toPayload($formData),
...$payload,
];
return $this->sendRequest(static::TYPE_BOOKING_UPDATE, $data);
@@ -130,17 +131,17 @@ class ApiClient
/**
* @throws ApiClientException
*/
public function getMutableFields(int $id): Notification|BaseData
public function getMutableData(int $id): Notification|BaseData
{
$data = [
'user' => $this->config['bpn_username'],
'key' => $this->createKey($this->config['bpn_username'], $this->config['bpn_password'], static::TYPE_MUTABLE_FIELDS),
'satz' => ['@typ' => static::TYPE_MUTABLE_FIELDS],
'key' => $this->createKey($this->config['bpn_username'], $this->config['bpn_password'], static::TYPE_MUTABLE_DATA),
'satz' => ['@typ' => static::TYPE_MUTABLE_DATA],
'art' => 'Vorgang_Details',
'idreise' => $id,
];
return $this->sendRequest(static::TYPE_MUTABLE_FIELDS, $data);
return $this->sendRequest(static::TYPE_MUTABLE_DATA, $data);
}
/**
@@ -229,7 +230,7 @@ class ApiClient
*/
private function sendRequest(string $type, array $data): mixed
{
$requestId = Uuid::v7();
$requestId = date(DATE_ATOM).uniqid();
$body = $this
->serializer