<?php
declare(strict_types=1);
namespace App\Form\EventListener\Franchise\ExternalLink;
use App\Entity\Franchise\ExternalLink;
use App\Entity\Franchise\ExternalLinkInterface;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\Form\FormEvent;
use Symfony\Component\Form\FormEvents;
class ValidateExternalLinkFieldsSubscriber implements EventSubscriberInterface
{
public static function getSubscribedEvents(): array
{
return [FormEvents::POST_SUBMIT => 'postSubmit'];
}
public function postSubmit(FormEvent $event): void
{
/** @var ExternalLink $externalLink */
$externalLink = $event->getData();
// dump($externalLink->getType(), $externalLink);
switch ($externalLink->getType()) {
case ExternalLinkInterface::EXTERNAL_LINK_TYPE_FILE:
$externalLink->setLink(null);
$externalLink->setContent(null);
break;
case ExternalLinkInterface::EXTERNAL_LINK_TYPE_LINK:
$externalLink->setContent(null);
$externalLink->setFile(null);
$externalLink->setExternalFile(null);
break;
case ExternalLinkInterface::EXTERNAL_LINK_TYPE_CONTENT:
$externalLink->setLink(null);
$externalLink->setFile(null);
$externalLink->setExternalFile(null);
break;
}
}
}