<?php declare(strict_types=1);
namespace Vio\B2BBudget\Core\Checkout\Customer\Subscriber;
use Shopware\Core\Checkout\Customer\CustomerEvents;
use Shopware\Core\Framework\DataAbstractionLayer\Event\EntityDeletedEvent;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\HttpFoundation\RequestStack;
class CustomerTokenSubscriber implements EventSubscriberInterface
{
private RequestStack $requestStack;
public function __construct(
RequestStack $requestStack
)
{
$this->requestStack = $requestStack;
}
/**
* @inheritDoc
*/
public static function getSubscribedEvents(): array
{
return [
CustomerEvents::CUSTOMER_DELETED_EVENT => ['onCustomerDeleted', 100]
];
}
public function onCustomerDeleted(EntityDeletedEvent $event): void
{
$master = $this->requestStack->getMasterRequest();
if (!$master) {
return;
}
if (!$master->attributes->has('_route')) {
return;
}
$route = $master->attributes->get('_route');
if ($route === 'frontend.b2b.employee.budget.delete') {
$event->stopPropagation();
}
}
}