<?php
/**
* CookieConsentBundle
* Copyright (c) Die Leoparden GmbH
*/
namespace DieLeoparden\CookieConsentBundle\EventSubscriber;
use DieLeoparden\CookieConsentBundle\Traits\CacheIdentifierTrait;
use Pimcore\Cache;
use Pimcore\Event\DataObjectEvents;
use Pimcore\Event\Model\DataObjectEvent;
use Pimcore\Model\DataObject;
use Pimcore\Model\DataObject\CookieConsentEntry;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
/**
* Class DataObjectSubscriber
*/
class DataObjectSubscriber implements EventSubscriberInterface
{
use CacheIdentifierTrait;
/**
* {@inheritdoc}
*/
public static function getSubscribedEvents()
{
return [
DataObjectEvents::POST_UPDATE => [
[
'onPostUpdate',
],
],
];
}
/**
* @param DataObjectEvent $event
*/
public function onPostUpdate(DataObjectEvent $event)
{
/** @var DataObject $object */
$object = $event->getObject();
if (!$object instanceof CookieConsentEntry) {
return;
}
Cache::remove($this->getScriptCacheIdentifier($object->getApiToken()));
Cache::remove($this->getStylesheetCacheIdentifier($object->getApiToken()));
Cache::remove($this->getLanguageScriptCacheIdentifier($object->getApiToken()));
Cache::remove($this->getServiceScriptCacheIdentifier($object->getApiToken()));
}
}