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

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