wip: booking process

This commit is contained in:
Björn Fromme
2025-07-16 11:55:49 +02:00
parent bef18971c3
commit 47faa6b08e
26 changed files with 1123 additions and 271 deletions
@@ -4,11 +4,12 @@ namespace App\BusProNet\XmlParser;
use App\BusProNet\Model\Availability;
use App\BusProNet\Model\BaseData;
use App\BusProNet\Model\Room;
use Symfony\Component\DomCrawler\Crawler;
class AvailabilitiesParser extends AbstractParser
{
public function parse(Crawler $result): BaseData
public function parseServices(Crawler $result): BaseData
{
$availabilities = [];
@@ -27,4 +28,27 @@ class AvailabilitiesParser extends AbstractParser
return new BaseData($availabilities);
}
public function parseRooms(Crawler $result): BaseData
{
$availabilities = [];
$result
->filterXPath('//unterbringungen/unterbringung')
->each(function (Crawler $node) use (&$availabilities) {
$room = new Room();
$room->id = (int) $node->attr('id_zimmer');
$room->label = (string) $node->attr('bezeichnung');
$room->category = (string) $node->attr('kategorie');
$room->board = (string) $node->attr('verpflegung');
$room->available = (int) $node->attr('frei');
$room->status = (string) $node->attr('status');
$room->price = $this->stringToFloat($node->attr('preis'));
$availabilities[$room->id] = $room;
})
;
return new BaseData($availabilities);
}
}