phytoevidence-api / security /validation.py
debpc
Ultra-modular PhytoEvidence v3.0 — 21 modules organized
e16db8b
Raw
History Blame Contribute Delete
804 Bytes
#!/usr/bin/env python3
"""Request validation helpers."""
from pydantic import ValidationError
from fastapi import HTTPException, status
from logger import setup_logger
logger = setup_logger("security.validation")
async def validate_json(model_class, data: dict):
"""Validate and parse JSON against Pydantic model."""
try:
return model_class(**data)
except ValidationError as e:
logger.warning(f"Validation error: {e}")
raise HTTPException(
status_code=status.HTTP_422_UNPROCESSABLE_ENTITY,
detail=f"Invalid request: {str(e)}"
)
except Exception as e:
logger.error(f"Parse error: {e}")
raise HTTPException(
status_code=status.HTTP_400_BAD_REQUEST,
detail=f"Bad request: {str(e)}"
)