<?php
/**
* Pimcore
*
* This source file is available under following license:
* - Pimcore Commercial License (PCL)
*
* @copyright Copyright (c) Pimcore GmbH (http://www.pimcore.org)
* @license http://www.pimcore.org/license PCL
*/
namespace Pimcore\Bundle\PortalEngineBundle\EventSubscriber;
use Pimcore\Bundle\PortalEngineBundle\Service\StatisticsTracker\Elasticsearch\AssetUpdateTracker;
use Pimcore\Event\AssetEvents;
use Pimcore\Event\Model\AssetEvent;
use Pimcore\Model\Asset;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
/**
* Class AssetUpdateSubscriber
*
* @package Pimcore\Bundle\PortalEngineBundle\EventSubscriber
*/
class AssetUpdateSubscriber implements EventSubscriberInterface
{
/** @var AssetUpdateTracker */
protected $assetUpdateTracker;
/**
* AssetUpdateSubscriber constructor.
*
* @param AssetUpdateTracker $assetUpdateTracker
*/
public function __construct(AssetUpdateTracker $assetUpdateTracker)
{
$this->assetUpdateTracker = $assetUpdateTracker;
}
/**
* @return array
*/
public static function getSubscribedEvents()
{
return [
AssetEvents::POST_UPDATE => 'updateAsset',
];
}
/**
* @param AssetEvent $event
*/
public function updateAsset(AssetEvent $event)
{
$asset = $event->getAsset();
if ($asset instanceof Asset) {
$this->assetUpdateTracker->trackEvent(['asset' => $asset]);
}
}
}