src/Event/EasyAdminSubscriber.php line 44

Open in your IDE?
  1. <?php
  2. namespace App\Event;
  3. use App\Entity\Customer;
  4. use App\Service\Messenger;
  5. use EasyCorp\Bundle\EasyAdminBundle\Event\EasyAdminEvents;
  6. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  7. use Symfony\Component\EventDispatcher\GenericEvent;
  8. use Bundles\Instruments\Base\Entity\Forward;
  9. class EasyAdminSubscriber implements EventSubscriberInterface {
  10. protected $messenger;
  11. public function __construct(Messenger $messenger) {
  12. $this->messenger = $messenger;
  13. }
  14. /**
  15. * @return string[]
  16. */
  17. public static function getSubscribedEvents() {
  18. return [
  19. EasyAdminEvents::POST_NEW => 'onPostNew',
  20. EasyAdminEvents::POST_UPDATE => 'onPostUpdate',
  21. EasyAdminEvents::PRE_NEW => 'onPreNew',
  22. EasyAdminEvents::POST_DELETE => 'onPostDelete',
  23. ];
  24. }
  25. public function onPreNew(GenericEvent $event) {
  26. $entity = $event->getSubject();
  27. }
  28. public function onPostNew(GenericEvent $event) {
  29. $entity = $event->getSubject();
  30. }
  31. public function onPostDelete(GenericEvent $event) {
  32. $entity = $event->getSubject();
  33. if ($entity instanceof Forward) {
  34. /**
  35. * @var Forward $entity
  36. */
  37. $this->messenger->send('forward_rejected', $entity->getPortfolio()->getCustomer(), $entity);
  38. }
  39. /**
  40. * @var Customer $entity
  41. */
  42. if ($entity instanceof Customer) {
  43. $this->messenger->send('customer_rejected', $entity);
  44. }
  45. }
  46. public function onPostUpdate(GenericEvent $event) {
  47. $entity = $event->getSubject();
  48. if ($entity instanceof Forward) {
  49. /**
  50. * @var Forward $entity
  51. */
  52. $this->messenger->send('forward_updated', $entity->getPortfolio()->getCustomer(), $entity);
  53. }
  54. if ($entity instanceof Customer) {
  55. /**
  56. * @var Customer $entity
  57. */
  58. $this->messenger->send('customer_updated', $entity);
  59. }
  60. }
  61. }