src/Subscriber/WebhookSubscriber.php line 34

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\Subscriber;
  4. use App\Event\Webhook\WebhookTriggeredEvent;
  5. use Psr\Log\LoggerInterface;
  6. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  7. class WebhookSubscriber implements EventSubscriberInterface
  8. {
  9.     /**
  10.      * @var LoggerInterface
  11.      */
  12.     private $logger;
  13.     /**
  14.      * @param LoggerInterface $webhookLogger
  15.      */
  16.     public function __construct(LoggerInterface $webhookLogger)
  17.     {
  18.         $this->logger $webhookLogger;
  19.     }
  20.     public static function getSubscribedEvents()
  21.     {
  22.         return [
  23.             WebhookTriggeredEvent::class => 'onTriggered'
  24.         ];
  25.     }
  26.     public function onTriggered(WebhookTriggeredEvent $event) : void
  27.     {
  28.         $webhookName $event->getWebhookName();
  29.         $actionName $event->getAction();
  30.         $data $event->getData();
  31.         if (isset($data['error']) && $data['error']) {
  32.             $this->logger->error(\sprintf('[webhook.triggerred] webhook \'%s\' triggered on action \'%s\' with data \'%s\'',
  33.                 $webhookName,
  34.                 $actionName,
  35.                 \is_scalar($data) ? $data \json_encode($data)
  36.             ));
  37.         } else {
  38.             $this->logger->info(\sprintf('[webhook.triggerred] webhook \'%s\' triggered on action \'%s\' with data \'%s\'',
  39.                 $webhookName,
  40.                 $actionName,
  41.                 \is_scalar($data) ? $data \json_encode($data)
  42.             ));
  43.         }
  44.     }
  45. }