<?php
namespace App\InsuranceCompany\OZK\SOAP\Subscriber;
use App\SoapClient\Event\RequestEvent;
use Soap\Engine\HttpBinding\SoapRequest;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
class XmlReplaceSubscriber implements EventSubscriberInterface
{
public function onRequest(RequestEvent $event): void
{
$request = $event->getRequest();
if ($event->getMethod() === 'policySaveSmetka') {
$event->setRequest(new SoapRequest(
str_replace(
[
' xsi:type="ns1:stikeri"',
' xsi:type="ns1:sertifikati"',
],
'',
$request->getRequest()
),
$request->getLocation(),
$request->getAction(),
$request->getVersion(),
$request->getOneWay()
));
}
}
/**
* @inheritDoc
* @noinspection PhpArrayShapeAttributeCanBeAddedInspection
*/
public static function getSubscribedEvents(): array
{
return [
RequestEvent::class => 'onRequest',
];
}
}