<?php
namespace CodersLab\Lms\SharedKernel\Application\Response;
use JMS\Serializer\SerializationContext;
use JMS\Serializer\SerializerInterface;
use Symfony\Component\HttpKernel\Event\ResponseEvent;
final class LMSResponseListener
{
private SerializerInterface $serializer;
public function __construct(SerializerInterface $serializer)
{
$this->serializer = $serializer;
}
public function onKernelResponse(ResponseEvent $event): void
{
if (!$event->getResponse() instanceof LmsApiResponse) {
return;
}
$context = SerializationContext::create();
$context->setSerializeNull(true);
$response = $event->getResponse();
$response->setContent($this->serializer->serialize($response->getData(), 'json', $context));
}
}