src/EventSubscriber/OrderNoteSubscriber.php line 36

Open in your IDE?
  1. <?php
  2. namespace App\EventSubscriber;
  3. use ApiPlatform\Core\EventListener\EventPriorities;
  4. use App\Entity\Order\OrderNote;
  5. use Exception;
  6. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  7. use Symfony\Component\HttpFoundation\JsonResponse;
  8. use Symfony\Component\HttpFoundation\Response;
  9. use Symfony\Component\HttpKernel\Event\ViewEvent;
  10. use Symfony\Component\HttpKernel\KernelEvents;
  11. use Symfony\Contracts\Translation\TranslatorInterface;
  12. class OrderNoteSubscriber implements EventSubscriberInterface
  13. {
  14.     private TranslatorInterface $translator;
  15.     public function __construct(TranslatorInterface $translator)
  16.     {
  17.         $this->translator $translator;
  18.     }
  19.     public static function getSubscribedEvents(): array
  20.     {
  21.         return [
  22.             KernelEvents::VIEW => ['updateOrder'EventPriorities::PRE_WRITE],
  23.         ];
  24.     }
  25.     /**
  26.      * @return void
  27.      *
  28.      * @throws Exception
  29.      */
  30.     public function updateOrder(ViewEvent $args)
  31.     {
  32.         $entity $args->getControllerResult();
  33.         if (!$entity instanceof OrderNote) {
  34.             return;
  35.         }
  36.         if (is_null($entity->getContent()) or empty($entity->getContent())) {
  37.             $res = new JsonResponse([
  38.                 'code' => Response::HTTP_BAD_REQUEST,
  39.                 'message' => $this->translator->trans('Content can not be null or empty.', [], 'validators'),
  40.             ], Response::HTTP_BAD_REQUEST);
  41.             $args->setResponse($res);
  42.             return;
  43.         }
  44.         $order $entity->getOrder();
  45.         $order->setOrderState($entity->getOrderState());
  46.     }
  47. }