wip: booking process
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user