From 30f87732f8b3591da80fcd2195e40f8c4cebf8e7 Mon Sep 17 00:00:00 2001 From: Mireya Cueto Garrido Date: Wed, 25 Mar 2026 14:03:48 +0100 Subject: [PATCH] Corregido endpoint /build --- backend/api/models/docmf_models.py | 4 ++++ backend/api/routers/docmf_build.py | 8 ++++---- backend/api/services/docmf_build_service.py | 10 +++++++++- 3 files changed, 17 insertions(+), 5 deletions(-) diff --git a/backend/api/models/docmf_models.py b/backend/api/models/docmf_models.py index a13b69c..0cf9342 100644 --- a/backend/api/models/docmf_models.py +++ b/backend/api/models/docmf_models.py @@ -41,3 +41,7 @@ class DoCMFRequest(BaseModel): if any(c < 0 for c in v): raise ValueError("Las cartas no pueden ser negativas.") return v + + +class DoCMFMultiRequest(BaseModel): + levels: List[DoCMFRequest] diff --git a/backend/api/routers/docmf_build.py b/backend/api/routers/docmf_build.py index f3169b2..3fc355f 100644 --- a/backend/api/routers/docmf_build.py +++ b/backend/api/routers/docmf_build.py @@ -1,12 +1,12 @@ from fastapi import APIRouter, HTTPException -from models.docmf_models import DoCMFRequest -from services.docmf_build_service import build_docmf +from models.docmf_models import DoCMFMultiRequest +from services.docmf_build_service import build_docmf_multi router = APIRouter() @router.post("/build") -def build(request: DoCMFRequest): +def build(request: DoCMFMultiRequest): try: - return build_docmf(request) + return build_docmf_multi(request) except Exception as e: raise HTTPException(status_code=400, detail=str(e)) diff --git a/backend/api/services/docmf_build_service.py b/backend/api/services/docmf_build_service.py index 0cdc6eb..7c88660 100644 --- a/backend/api/services/docmf_build_service.py +++ b/backend/api/services/docmf_build_service.py @@ -1,4 +1,4 @@ -def build_docmf(request): +def build_single_docmf(request): a, b = request.core c, d = request.support @@ -35,3 +35,11 @@ def build_docmf(request): "left_nodes": left_nodes, "right_nodes": right_nodes } + + +def build_docmf_multi(request): + results = [] + for level in request.levels: + result = build_single_docmf(level) + results.append(result) + return {"results": results}