40 lines
1.1 KiB
Python
40 lines
1.1 KiB
Python
from fastapi import APIRouter, HTTPException
|
|
from api.models.docmf_validation_models import ValidationRequest
|
|
from api.services.docmf_validation_service import validate_levels
|
|
|
|
router = APIRouter()
|
|
|
|
@router.post("/validate")
|
|
def validate_docmf_levels(request: ValidationRequest):
|
|
results = validate_levels(request.levels)
|
|
|
|
invalid = [r for r in results if not r["valid"]]
|
|
|
|
if len(request.levels) == 1:
|
|
# Caso de un solo nivel
|
|
if invalid:
|
|
raise HTTPException(
|
|
status_code=400,
|
|
detail={
|
|
"message": "El nivel es incorrecto.",
|
|
"errors": invalid[0]["errors"]
|
|
}
|
|
)
|
|
return {
|
|
"message": "El nivel es correcto.",
|
|
"details": results[0]
|
|
}
|
|
|
|
# Caso de varios niveles
|
|
if invalid:
|
|
return {
|
|
"message": "Validación completada.",
|
|
"valid_levels": [r for r in results if r["valid"]],
|
|
"invalid_levels": invalid
|
|
}
|
|
|
|
return {
|
|
"message": "Todos los niveles son correctos.",
|
|
"results": results
|
|
}
|