From 3da81a9495c34188dae5727dafad08626d01644c Mon Sep 17 00:00:00 2001 From: juanjo <130799031+juanminguezsanz2023@users.noreply.github.com> Date: Sun, 12 Apr 2026 22:56:35 +0200 Subject: [PATCH] fix admin status --- apps/backend_admin/actions.py | 13 +++++++++++++ apps/backend_admin/urls.py | 7 +++++++ apps/backend_admin/views.py | 28 ++++++++++++++++++++++++++++ apps/promociones/urls.py | 1 - core/urls.py | 1 + 5 files changed, 49 insertions(+), 1 deletion(-) create mode 100644 apps/backend_admin/actions.py create mode 100644 apps/backend_admin/urls.py create mode 100644 apps/backend_admin/views.py diff --git a/apps/backend_admin/actions.py b/apps/backend_admin/actions.py new file mode 100644 index 0000000..680a1f5 --- /dev/null +++ b/apps/backend_admin/actions.py @@ -0,0 +1,13 @@ +class Admin: + def get_status_action(self): + """ + Lógica para comprobar la salud del sistema. + Devuelve el estado básico del entorno. + """ + # En el futuro, podrías usar get_parameterized aquí si quisieras + # consultar estados en la base de datos. + return { + "status": "ok", + "message": "V-Encore API System is active", + "environment": "dev" # Esto podría venir de una variable de entorno + } \ No newline at end of file diff --git a/apps/backend_admin/urls.py b/apps/backend_admin/urls.py new file mode 100644 index 0000000..fc56f12 --- /dev/null +++ b/apps/backend_admin/urls.py @@ -0,0 +1,7 @@ +from django.urls import path +from .views import status_view + +urlpatterns = [ + # Ruta final: /admin/status/ + path('status/', status_view, name='admin_status'), +] \ No newline at end of file diff --git a/apps/backend_admin/views.py b/apps/backend_admin/views.py new file mode 100644 index 0000000..bf15dde --- /dev/null +++ b/apps/backend_admin/views.py @@ -0,0 +1,28 @@ +from django.http import JsonResponse +from .actions import Admin +import logging + +logger = logging.getLogger(__name__) + +def status_view(request): + # BLOQUE 1: Log de iniciación + logger.info("INICIO - Ejecutando Health Check de Administración.") + + # BLOQUE 2: Limpieza y validación de datos + # Para un status simple, el diccionario de limpieza está vacío + data_cleaned = {} + + # BLOQUE 3: Llamada a la acción + try: + # Instanciamos la clase Admin y llamamos al método + admin_logic = Admin() + response_data = admin_logic.get_status_action() + status_code = 200 + except Exception as e: + logger.error(f"ERROR - Fallo en get_status_action: {str(e)}") + response_data = {"status": "error", "message": "Internal Server Error"} + status_code = 500 + + # BLOQUE 4: Log de cierre y retorno + logger.info(f"FIN - Health Check completado. Status: {status_code}") + return JsonResponse(response_data, status=status_code) \ No newline at end of file diff --git a/apps/promociones/urls.py b/apps/promociones/urls.py index 6e4a6d7..6ec526f 100644 --- a/apps/promociones/urls.py +++ b/apps/promociones/urls.py @@ -4,6 +4,5 @@ from .views import get_promocion_view, status_view urlpatterns = [ # Capa 1: Definición del endpoint path('obtener/', get_promocion_view, name='get_promocion'), - path('status/', status_view, name='api_status'), ] \ No newline at end of file diff --git a/core/urls.py b/core/urls.py index eaae147..d3fff72 100644 --- a/core/urls.py +++ b/core/urls.py @@ -3,4 +3,5 @@ from django.urls import path, include urlpatterns = [ # Redirigimos todas las peticiones de /api/promociones/ a nuestra app path('api/promociones/', include('apps.promociones.urls')), + path('admin/', include('apps.backend_admin.urls')), # El tuyo ]