wip: booking process
This commit is contained in:
@@ -11,7 +11,7 @@ class ApiResponseParser extends AbstractParser
|
||||
/**
|
||||
* @throws ResponseParserException
|
||||
*/
|
||||
public function parseXmlString(string $type, string $xml): mixed
|
||||
public function parseXmlString(string $type, string $xml, array $additionalArgs = []): mixed
|
||||
{
|
||||
$crawler = new Crawler($xml);
|
||||
|
||||
@@ -19,7 +19,7 @@ class ApiResponseParser extends AbstractParser
|
||||
throw new ResponseParserException('Empty response received from server');
|
||||
}
|
||||
|
||||
// Override type when present in XML to catch error responses
|
||||
// Override type unless present in XML to catch error responses
|
||||
$responseType = $this
|
||||
->getStringOrNullValue($crawler->filterXPath('//ergebnis/satz/@typ')) ?? $type;
|
||||
|
||||
@@ -54,9 +54,14 @@ class ApiResponseParser extends AbstractParser
|
||||
case ApiClient::TYPE_MUTABLE_DATA:
|
||||
return (new MutableDataParser())->parse($resultNode);
|
||||
case ApiClient::TYPE_AVAILABILITY:
|
||||
return (new AvailabilitiesParser())->parse($resultNode);
|
||||
return (new AvailabilitiesParser())->parseServices($resultNode);
|
||||
case ApiClient::TYPE_AVAILABILITY_HOTEL:
|
||||
return (new AvailabilitiesParser())->parseRooms($resultNode);
|
||||
case ApiClient::TYPE_BOOKING_UPDATE:
|
||||
return (new BookingUpdateParser())->parse($resultNode);
|
||||
case ApiClient::TYPE_PRODUCT_DATA:
|
||||
$travelNode = $crawler->filterXPath('//reise/termin');
|
||||
return (new TravelParser())->parse($travelNode->first(), ...$additionalArgs);
|
||||
}
|
||||
|
||||
throw new ResponseParserException('Unable to parse XML response');
|
||||
|
||||
Reference in New Issue
Block a user