Files
microservice/api/api_v2/modules/common/response.py

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
)