diff --git a/src/OgBootBundle/Controller/OgBootController.php b/src/OgBootBundle/Controller/OgBootController.php index 73556d8..d420e73 100644 --- a/src/OgBootBundle/Controller/OgBootController.php +++ b/src/OgBootBundle/Controller/OgBootController.php @@ -140,11 +140,23 @@ public function getStatus(): Response $ogLiveConfigResult = $ogLiveResponse['output']; $ogLiveExitCode = $ogLiveResponse['exitCode']; + $defaultOglive = null; + $installedOglives = []; + $ogLiveError = null; + if ($ogLiveExitCode !== 0) { - return new JsonResponse( - ['error' => 'FAILED_TO_RETRIEVE_OGLIVE_CONFIGURATION', 'details' => $ogLiveConfigResult['error'] ?? 'Unknown error'], - Response::HTTP_INTERNAL_SERVER_ERROR - ); + // Capturar el error, pero continuar la ejecución + $ogLiveError = [ + 'error' => 'FAILED_TO_RETRIEVE_OGLIVE_CONFIGURATION', + 'details' => $ogLiveConfigResult['error'] ?? 'Unknown error' + ]; + } else { + // Extraer datos si el comando fue exitoso + $defaultOglive = $ogLiveConfigResult['default_oglive'] ?? null; + $installedOglives = $ogLiveConfigResult['installed_ogLives'] ?? []; + if (empty($installedOglives)) { + $installedOglives = ['message' => 'No installed ogLives found']; + } } // Llamar a oglivecli para obtener el estado de los servicios @@ -164,10 +176,7 @@ public function getStatus(): Response $installedOglives = $ogLiveConfigResult['installed_ogLives'] ?? []; if ($defaultOglive === null || empty($installedOglives)) { - return new JsonResponse( - ['error' => 'NOT_FOUND', 'message' => 'No default or installed ogLives found.'], - Response::HTTP_NOT_FOUND - ); + $installedOglives = ['message' => 'No installed ogLives found']; } $response = [ @@ -180,6 +189,11 @@ public function getStatus(): Response ] ]; // Formatear la respuesta final con todos los datos + // Incluir el error de oglive si existe + if ($ogLiveError !== null) { + $response['message']['oglive_error'] = $ogLiveError; + } + return new JsonResponse($response, Response::HTTP_OK); }