<?php declare(strict_types=1);
namespace EsmConfigurator\Storefront\Subscriber;
use EsmConfigurator\Core\Content\ConfigurationGroup\ConfigurationGroupEvents;
use EsmConfigurator\Core\Content\ConfigurationItem\ConfigurationItemEvents;
use EsmConfigurator\Storefront\Service\ConfigurationMappingService;
use Shopware\Core\Framework\DataAbstractionLayer\Event\EntityWrittenEvent;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
class EntityWrittenSubscriber implements EventSubscriberInterface
{
protected ConfigurationMappingService $mappingService;
public function __construct(
ConfigurationMappingService $mappingService
)
{
$this->mappingService = $mappingService;
}
public static function getSubscribedEvents(): array
{
return [
ConfigurationItemEvents::CONFIGURATION_ITEM_WRITTEN_EVENT => 'configurationItemWritten',
ConfigurationGroupEvents::CONFIGURATION_GROUP_WRITTEN_EVENT => 'configurationGroupWritten'
];
}
public function configurationItemWritten(EntityWrittenEvent $event): void
{
$configurationItems = $event->getPayloads();
$this->mappingService->updateConfigurationItems($configurationItems);
}
public function configurationGroupWritten(EntityWrittenEvent $event): void
{
$configurationGroups = $event->getPayloads();
$this->mappingService->updateConfigurationGroups($configurationGroups);
}
}