<?php
namespace App\V4\Controller\CustomEventTrigger;
use ApiPlatform\Core\Exception\ResourceClassNotSupportedException;
use App\Model\Form\FormSchema;
use App\V4\Service\CustomEventTrigger\CustomEventTriggerFormHandler;
use App\V4\Voters\CustomEventTriggerVoter;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Request;
class GetCustomEventTriggerFormAction extends AbstractController
{
/**
* @var CustomEventTriggerFormHandler
*/
private $customEventTriggerFormHandler;
/**
* @param CustomEventTriggerFormHandler $customEventTriggerFormHandler
*/
public function __construct(CustomEventTriggerFormHandler $customEventTriggerFormHandler)
{
$this->customEventTriggerFormHandler = $customEventTriggerFormHandler;
}
/**
* @param Request $request
* @param string|null $id
*
* @return FormSchema|JsonResponse
*
* @throws ResourceClassNotSupportedException
*/
public function __invoke(Request $request, ?string $id)
{
$this->denyAccessUnlessGranted(CustomEventTriggerVoter::CUSTOM_EVENT_TRIGGER_ADD_EDIT);
return $this->customEventTriggerFormHandler->getCustomEventTriggerForm($id, $request->get('customerId'));
}
}