From def75cec6c422b3cc31a7ac8f37e03e04aa12af2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Fastr=C3=A9?= Date: Wed, 16 Jul 2025 10:56:35 +0200 Subject: [PATCH] WIP first try for sending update command for ticket --- .../ChangeEmergencyStateCommandHandler.php | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/Bundle/ChillTicketBundle/src/Action/Ticket/Handler/ChangeEmergencyStateCommandHandler.php b/src/Bundle/ChillTicketBundle/src/Action/Ticket/Handler/ChangeEmergencyStateCommandHandler.php index 2a5440916..425ce1dff 100644 --- a/src/Bundle/ChillTicketBundle/src/Action/Ticket/Handler/ChangeEmergencyStateCommandHandler.php +++ b/src/Bundle/ChillTicketBundle/src/Action/Ticket/Handler/ChangeEmergencyStateCommandHandler.php @@ -15,13 +15,18 @@ use Chill\TicketBundle\Action\Ticket\ChangeEmergencyStateCommand; use Chill\TicketBundle\Entity\EmergencyStatusHistory; use Chill\TicketBundle\Entity\Ticket; use Symfony\Component\Clock\ClockInterface; +use Symfony\Component\Mercure\HubInterface; +use Symfony\Component\Mercure\Update; /** * Handler for changing the emergency status of a ticket. */ class ChangeEmergencyStateCommandHandler { - public function __construct(private readonly ClockInterface $clock) {} + public function __construct( + private readonly ClockInterface $clock, + private readonly HubInterface $hub, + ) {} public function __invoke(Ticket $ticket, ChangeEmergencyStateCommand $command): Ticket { @@ -38,12 +43,20 @@ class ChangeEmergencyStateCommandHandler } // Create a new emergency status history with the new status - new EmergencyStatusHistory( + $emergency = new EmergencyStatusHistory( $command->newEmergencyStatus, $ticket, $this->clock->now(), ); + $this->hub->publish( + new Update( + sprintf('https//chill.social/ticket/%d', $ticket->getId()), + json_encode(['emergency' => $emergency->getEmergencyStatus()]), + private: true + ) + ); + return $ticket; } }