From a00dc7a59ff5220dc48f95bb4c51fe723d5b8462 Mon Sep 17 00:00:00 2001 From: Manuel Aranda Date: Tue, 25 Feb 2025 08:48:53 +0100 Subject: [PATCH] refs #1555. Changes eventListener Mercure --- src/EventListener/ClientStatusNotifier.php | 13 +++++++++++++ .../TraceStatusProgressNotifier.php | 16 +++++++++++++++- 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/src/EventListener/ClientStatusNotifier.php b/src/EventListener/ClientStatusNotifier.php index e16e5b5..8ec0ff9 100644 --- a/src/EventListener/ClientStatusNotifier.php +++ b/src/EventListener/ClientStatusNotifier.php @@ -24,6 +24,19 @@ class ClientStatusNotifier } public function postUpdate(Client $client, PostUpdateEventArgs $event): void + { + try { + $this->notifyClientStatusChange($client); + } catch (\Exception $e) { + $this->logger->error('Error al notificar el cambio de estado de un cliente: ', [ + 'client' => $client->getUuid(), + 'status' => $client->getStatus(), + 'error' => $e->getMessage(), + ]); + } + } + + private function notifyClientStatusChange(Client $client): void { $update = new Update( 'clients', diff --git a/src/EventListener/TraceStatusProgressNotifier.php b/src/EventListener/TraceStatusProgressNotifier.php index 29b2cc1..53eaff9 100644 --- a/src/EventListener/TraceStatusProgressNotifier.php +++ b/src/EventListener/TraceStatusProgressNotifier.php @@ -25,10 +25,24 @@ class TraceStatusProgressNotifier } public function postUpdate(Trace $trace, PostUpdateEventArgs $event): void + { + try { + $this->notifyTraceStatusProgressChange($trace); + } catch (\Exception $e) { + $this->logger->error('Error al notificar el cambio de estado de una traza/log: ', [ + 'client' => $trace->getUuid(), + 'status' => $trace->getStatus(), + 'progress' => $trace->getProgress(), + 'error' => $e->getMessage(), + ]); + } + } + + private function notifyTraceStatusProgressChange(Trace $trace): void { $update = new Update( 'traces', - json_encode(['@id' => '/traces/'.$trace->getUuid(), 'status' => $trace->getStatus(), 'progress' => $trace->getProgress() / 100]) + json_encode(['@id' => '/traces/' . $trace->getUuid(), 'status' => $trace->getStatus(), 'progress' => $trace->getProgress() / 100]) ); $this->hub->publish($update);