src/Insurance/EventSubscriber/InsuranceSubscriber.php line 21

Open in your IDE?
  1. <?php
  2. namespace Insurance\EventSubscriber;
  3. use Insurance\Service\BcaRequestService;
  4. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  5. use Symfony\Component\HttpFoundation\Response;
  6. use Symfony\Component\HttpKernel\Event\ResponseEvent;
  7. use Symfony\Component\HttpKernel\KernelEvents;
  8. class InsuranceSubscriber implements EventSubscriberInterface
  9. {
  10.     /** @var BcaRequestService */
  11.     private $bcaRequestService;
  12.     public function __construct(BcaRequestService $bcaRequestService)
  13.     {
  14.         $this->bcaRequestService $bcaRequestService;
  15.     }
  16.     public function onKernelResponse(ResponseEvent $event)
  17.     {
  18.         $request $event->getRequest();
  19.         $response $event->getResponse();
  20.         if (
  21.             strpos($request->getPathInfo(), '/subscribe/') !== false
  22.             && $response->getStatusCode() === Response::HTTP_CREATED
  23.         ) {
  24.             $jsonData json_decode($request->getContent(), true);
  25.             $token array_key_exists('token'$jsonData) ? $jsonData['token'] : null;
  26.             if ($token)
  27.                 $this->bcaRequestService->disableToken($token);
  28.         }
  29.     }
  30.     public static function getSubscribedEvents()
  31.     {
  32.         return [
  33.             KernelEvents::RESPONSE => 'onKernelResponse',
  34.         ];
  35.     }
  36. }