src/EventSubscriber/ItemPriceFormatTransformerEventSubscriber.php line 33
<?phpdeclare(strict_types=1);namespace App\EventSubscriber;use ApiPlatform\Core\EventListener\EventPriorities;use App\DataTransformer\CurrencyDataTransformer;use App\Entity\Item;use Symfony\Component\EventDispatcher\EventSubscriberInterface;use Symfony\Component\HttpFoundation\Request;use Symfony\Component\HttpKernel\Event\ViewEvent;use Symfony\Component\HttpKernel\KernelEvents;final class ItemPriceFormatTransformerEventSubscriber implements EventSubscriberInterface{private array $allowedEditableMethods = [Request::METHOD_POST,Request::METHOD_PUT];public function __construct(private readonly CurrencyDataTransformer $currencyDataTransformer){}public static function getSubscribedEvents(): array{return [KernelEvents::VIEW => ['reverseTransformPrice', EventPriorities::PRE_WRITE]];}public function reverseTransformPrice(ViewEvent $event): void{$entity = $event->getControllerResult();if (!$entity instanceof Item||!in_array($event->getRequest()->getMethod(), $this->allowedEditableMethods)) {return;}$entity->setBudget($this->currencyDataTransformer->reverseTransform($entity->getRealBudget()))->setExternalBudget($this->currencyDataTransformer->reverseTransform($entity->getRealExternalBudget()));}}