src/DataCollector/WebhookDataCollector.php line 43

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\DataCollector;
  4. use App\Event\Webhook\WebhookTriggeredEvent;
  5. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  6. use Symfony\Component\HttpFoundation\Request;
  7. use Symfony\Component\HttpFoundation\Response;
  8. use Symfony\Component\HttpKernel\DataCollector\DataCollector;
  9. class WebhookDataCollector extends DataCollector implements EventSubscriberInterface
  10. {
  11.     protected $data = [
  12.         'calls' => []
  13.     ];
  14.     public function collect(Request $request,
  15.                             Response $response,
  16.                             \Throwable $exception null)
  17.     {
  18.         //nothing to do here, please look into onTriggered method
  19.     }
  20.     public function getName()
  21.     {
  22.         return 'webhook.collector';
  23.     }
  24.     public function reset()
  25.     {
  26.         // TODO: Implement reset() method.
  27.     }
  28.     public static function getSubscribedEvents()
  29.     {
  30.         return [
  31.             WebhookTriggeredEvent::class => 'onTriggered'
  32.         ];
  33.     }
  34.     public function onTriggered(WebhookTriggeredEvent $event) : void
  35.     {
  36.         $this->data['calls'][] = [
  37.             'webhookName' => $event->getWebhookName(),
  38.             'actionName' => $event->getAction(),
  39.             'date' => date('c'),
  40.             'data' => $event->getData(),
  41.             'data_json' => \json_encode($event->getData(), JSON_PRETTY_PRINT),
  42.         ];
  43.     }
  44.     /**
  45.      * Get all soap calls
  46.      * @return array
  47.      */
  48.     public function getCalls()
  49.     {
  50.         return $this->data['calls'];
  51.     }
  52. }