src/Lms/SharedKernel/Application/Response/LMSResponseListener.php line 18

Open in your IDE?
  1. <?php
  2. namespace CodersLab\Lms\SharedKernel\Application\Response;
  3. use JMS\Serializer\SerializationContext;
  4. use JMS\Serializer\SerializerInterface;
  5. use Symfony\Component\HttpKernel\Event\ResponseEvent;
  6. final class LMSResponseListener
  7. {
  8.     private SerializerInterface $serializer;
  9.     public function __construct(SerializerInterface $serializer)
  10.     {
  11.         $this->serializer $serializer;
  12.     }
  13.     public function onKernelResponse(ResponseEvent $event): void
  14.     {
  15.         if (!$event->getResponse() instanceof LmsApiResponse) {
  16.             return;
  17.         }
  18.         $context SerializationContext::create();
  19.         $context->setSerializeNull(true);
  20.         $response $event->getResponse();
  21.         $response->setContent($this->serializer->serialize($response->getData(), 'json'$context));
  22.     }
  23. }