<?php
namespace App\EventSubscriber;
use ApiPlatform\Core\EventListener\EventPriorities;
use App\Entity\Iban;
use App\Entity\User;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\HttpKernel\Event\RequestEvent;
use Symfony\Component\HttpKernel\KernelEvents;
class IbanFormatListener implements EventSubscriberInterface
{
public static function getSubscribedEvents()
{
return [
KernelEvents::REQUEST => ['formatIban', EventPriorities::POST_DESERIALIZE],
];
}
public function formatIban(RequestEvent $event)
{
$request = $event->getRequest();
$route = $request->attributes->get('_route');
if ( ! in_array($route, ['api_ibans_post_collection', 'api_ibans_put_item'])) {
return;
}
/** @var Iban $iban */
$iban = $request->attributes->get('data');
$iban->setIban(str_replace(' ', '', $iban->getIban()));
}
}