<?php declare(strict_types=1);
namespace VioB2BLogin\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->getMainRequest();
if (!$master) {
return;
}
if( !$master->attributes->has('_route') ) {
return;
}
$route = $master->attributes->get('_route');
if( $route === 'frontend.b2b.employee.delete'
|| $route === 'api.vio_b2b_employee.delete' ) {
$event->stopPropagation();
}
}
}