<?php
namespace App\EventListener\Web;
use App\Model\Controlpanel\Response\WebJsonApiResponse;
use Symfony\Component\HttpKernel\Event\ResponseEvent;
use Symfony\Component\Serializer\Encoder\JsonEncoder;
use Symfony\Component\Serializer\SerializerInterface;
class JsonApiResponseListener
{
/** @var SerializerInterface */
private $serializer;
public function __construct(SerializerInterface $serializer)
{
$this->serializer = $serializer;
}
public function onKernelResponse(ResponseEvent $event): void
{
$response = $event->getResponse();
if ($response instanceof WebJsonApiResponse) {
$response->setContent($this->serializer->serialize($response->getDocument(), JsonEncoder::FORMAT));
}
}
}