Der Secra Request /event/book/ ruft die Methode bookingEvent im BookingController auf. Die Daten werden validiert und ein Job GetBookingInfo angelegt. Dieser Job wird in die Queue geschickt und nach 30 Sekunden ausgeführt.
Der Job GetBookingInfo füllt das Model BookingDataSecra aus den Daten des Soap Aufrufs SoapClientSecra
$soapClientReturn = $soapClientSecra->soapCall(
'getBookingExtendedInfo',
[
'booking_no_extended' => $this->bookingInfo?->getAttribute('bookingNo'),
'keycode' => $this->bookingInfo?->getAttribute('keycode')
]
);
Der Job BookingEdom extrahiert aus den Secra Daten die Kundendaten, formatiert diese entsprechend den Anforderungen $this->customerData = $this->createCustomer($this->secraData); und sendet diese an den e-domizil Webservice um eine Kundennummer zu erhalten. $response = $edif->guzzleGet($customerFields);
Mit der e-Domizil Kundennummer und den Secra Daten wird die Buchung an den Webservice sendBuchung geschickt
$bookingData = $this->createBookingData(); $response = $edif->guzzleGet($bookingData);
protected $fillable = [
'bookingNo',
'keycode',
'eventtype',
'object'
];
Das Model baut mit den Credentials aus der .env eine WSDL Soap Verbindung zu Secra auf und holt sich die Buchungsdaten
setCredentials()
initClient()
soapCall()
https://www.optimale-praesentation.de/comm/universal/wsdl/?html&v=1.40 https://de.wikipedia.org/wiki/WS-Security
Der Response des Soap Requests wird im Model BookingDataSecra gespeichert
protected $table = 'booking_data_secra';
protected $fillable = [
'booking_no',
'category_no',
'category_type',
'object_no',
'unit_no',
'status',
'arrival',
'departure',
....
];
Die Logs Klasse bietet die Möglichkeit var dumps in einer Tabelle abzulegen z.B.
$payload = json_encode($request->all());
if ($validator->fails()){
Logs::create([
"label" => "validation fails",
"bookingNo" => $request->get('booking_no'),
"payload"=>$payload
]);
}
Die e-Domizil Interface Klasse (edif) ist dazu gedacht, Verbindungen mittels übergebener Parameter (partner,action,mandant) zum e-Dom Webservice aufzubauen und die Antwort zu verarbeiten.