src/EventsSubscriber/User/UserEventsSubscriber.php line 31

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\EventsSubscriber\User;
  4. use App\Contracts\User\Role;
  5. use App\Event\User\CreatedEvent;
  6. use App\Messenger\Creator\UpdateAvatarMessage;
  7. use App\Messenger\Creator\UpdateAverageViewsMessage;
  8. use App\Messenger\Creator\UpdateFollowersCountMessage;
  9. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  10. use Symfony\Component\Messenger\MessageBusInterface;
  11. class UserEventsSubscriber implements EventSubscriberInterface
  12. {
  13.     public function __construct(
  14.         private readonly MessageBusInterface $bus,
  15.     ) {
  16.     }
  17.     public static function getSubscribedEvents(): array
  18.     {
  19.         return [
  20.             CreatedEvent::class => [
  21.                 ['updateCreatorData'],
  22.             ],
  23.         ];
  24.     }
  25.     public function updateCreatorData(CreatedEvent $event): void
  26.     {
  27.         if (in_array(Role::CREATOR$event->getUser()->getRoles(), true)) {
  28.             $id $event->getUser()->getId();
  29.             $this->bus->dispatch(new UpdateAvatarMessage($id));
  30.             $this->bus->dispatch(new UpdateFollowersCountMessage($id));
  31.             $this->bus->dispatch(new UpdateAverageViewsMessage($id));
  32.         }
  33.     }
  34. }