67 lines
1.8 KiB
Python
67 lines
1.8 KiB
Python
"""Utilidades para estandarizar respuestas en los servicios."""
|
|
from typing import Any, Dict, List, Optional
|
|
|
|
def create_service_response(
|
|
success: bool = True,
|
|
message: str = "Operación completada exitosamente",
|
|
data: Optional[Dict[str, Any]] = None,
|
|
errors: Optional[List[str]] = None,
|
|
warnings: Optional[List[str]] = None,
|
|
metadata: Optional[Dict[str, Any]] = None
|
|
) -> Dict[str, Any]:
|
|
"""
|
|
Crea una respuesta estandarizada para los servicios.
|
|
|
|
Args:
|
|
success: Indica si la operación fue exitosa
|
|
message: Mensaje principal de la respuesta
|
|
data: Datos principales de la respuesta
|
|
errors: Lista de errores si los hay
|
|
warnings: Lista de advertencias si las hay
|
|
metadata: Metadatos adicionales de la operación
|
|
|
|
Returns:
|
|
Dict con estructura estandarizada de respuesta
|
|
"""
|
|
response = {
|
|
"success": success,
|
|
"message": message,
|
|
"data": data or {},
|
|
}
|
|
|
|
if errors:
|
|
response["errors"] = errors
|
|
|
|
if warnings:
|
|
response["warnings"] = warnings
|
|
|
|
if metadata:
|
|
response["metadata"] = metadata
|
|
|
|
return response
|
|
|
|
def create_error_response(
|
|
message: str,
|
|
errors: Optional[List[str]] = None,
|
|
data: Optional[Dict[str, Any]] = None,
|
|
metadata: Optional[Dict[str, Any]] = None
|
|
) -> Dict[str, Any]:
|
|
"""
|
|
Crea una respuesta de error estandarizada.
|
|
|
|
Args:
|
|
message: Mensaje principal de error
|
|
errors: Lista detallada de errores
|
|
data: Datos adicionales del error
|
|
metadata: Metadatos del error
|
|
|
|
Returns:
|
|
Dict con estructura estandarizada de error
|
|
"""
|
|
return create_service_response(
|
|
success=False,
|
|
message=message,
|
|
data=data,
|
|
errors=errors,
|
|
metadata=metadata
|
|
) |