<?php declare(strict_types=1);
namespace App\EventSubscriber;
use App\Entity\Lead;
use App\Service\ChartProvider;
use EasyCorp\Bundle\EasyAdminBundle\Event\AfterCrudActionEvent;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
class EasyAdminSubscriber implements EventSubscriberInterface
{
private $chartProvider;
public function __construct(ChartProvider $chartProvider)
{
$this->chartProvider = $chartProvider;
}
public static function getSubscribedEvents()
{
return [
AfterCrudActionEvent::class => ['setChart'],
];
}
public function setChart(AfterCrudActionEvent $event)
{
$fqcn = $event->getAdminContext()->getEntity()->getFqcn();
if (Lead::class !== $fqcn) {
return;
}
$responseParameters = $event->getResponseParameters();
if (!$entities = $responseParameters->get('entities')) {
return;
}
$event->addResponseParameters([
'chart' => $this->chartProvider->getFilteredLeadChart($entities)
]);
}
}