lib/boab/cms-bundle/src/Api/EventListener/ApiExceptionListener.php line 20

Open in your IDE?
  1. <?php
  2. namespace Boab\CmsBundle\Api\EventListener;
  3. use Symfony\Component\HttpKernel\Event\ExceptionEvent;
  4. use Symfony\Component\HttpFoundation\JsonResponse;
  5. use Symfony\Component\Serializer\SerializerInterface;
  6. use Symfony\Component\HttpKernel\Exception\HttpExceptionInterface;
  7. use Boab\CmsBundle\Api\Exception\ApiException;
  8. class ApiExceptionListener 
  9. {    
  10.     private $serializer;
  11.     public function __construct(SerializerInterface $serializer)
  12.     {
  13.         $this->serializer $serializer;
  14.     }
  15.     public function onKernelException(ExceptionEvent $event
  16.     {
  17.         $request $event->getRequest();
  18.         $exception $event->getThrowable();
  19.         $format $request->getContentType();
  20.         if(!$exception instanceof ApiException){
  21.             return;
  22.         }
  23.         $data $this->serializer->normalize($exception$format);
  24.         $response = new JsonResponse($data); 
  25.         $response->setStatusCode($data['code']);
  26.         $event->setResponse($response);
  27.             
  28.     }
  29.     
  30. }