import logging from django.http import JsonResponse from .actions import getData from django.http import JsonResponse from .actions import get_status_action # Configuración del logger para rastrear la ejecución logger = logging.getLogger(__name__) def get_promocion_view(request): """ Vista estandarizada para la obtención de una promoción. """ # --------------------------------------------------------- # BLOQUE 1: Log de iniciación # --------------------------------------------------------- logger.info("[START] Iniciando ejecución de get_promocion_view") try: # --------------------------------------------------------- # BLOQUE 2: Limpieza de datos (Data Cleaning) # --------------------------------------------------------- # Extraemos los parámetros del request y preparamos el diccionario raw_data = request.GET.dict() # Aquí es donde ella aplicaría validaciones adicionales si fuera necesario clean_params = { 'id': raw_data.get('id'), 'activo': raw_data.get('activo', True) # Valor por defecto } # --------------------------------------------------------- # BLOQUE 3: Llamada a la Action (Execution) # --------------------------------------------------------- # La lógica de SQL y parametrización vive dentro de esta llamada resultado_db = getData(clean_params) # --------------------------------------------------------- # BLOQUE 4: Log de cierre y respuesta (Closure) # --------------------------------------------------------- logger.info(f"[SUCCESS] get_promocion_view finalizada. Registros encontrados: {len(resultado_db)}") return JsonResponse({ 'status': 'success', 'data': resultado_db }, status=200) except Exception as e: # Log de error detallado en caso de fallo logger.error(f"[ERROR] Fallo crítico en get_promocion_view: {str(e)}") return JsonResponse({ 'status': 'error', 'message': 'Error interno del servidor' }, status=500) # En views.py def status_view(request): # BLOQUE 1: Log de iniciación logger.info("Iniciando petición de status...") # BLOQUE 2: Limpieza y validación de datos (En este caso no hay datos de entrada) data_cleaned = {} # BLOQUE 3: Llamada a la acción response_data = get_status_action() # BLOQUE 4: Log de cierre y retorno logger.info("Status enviado correctamente.") return JsonResponse(response_data, status=200)