SkillForge / backend /routers /roadmap.py
team99tech
added minor1 changes2
de21b45
from fastapi import APIRouter, HTTPException
from models.schemas import AssessmentResult
from graph_pipeline.pipeline import pipeline
from routers.assessment import active_assessments
from output.roadmap_generator import generate_roadmap
router = APIRouter(prefix="/roadmap", tags=["roadmap"])
@router.get("/{assessment_id}", response_model=AssessmentResult)
async def get_roadmap(assessment_id: str, hours_per_day: float = 2.0):
if assessment_id not in active_assessments:
raise HTTPException(status_code=404, detail="Assessment not found")
config = active_assessments[assessment_id]
current_state = pipeline.get_state(config)
st = current_state.values
if not st.get("assessment_complete"):
raise HTTPException(status_code=400, detail="Assessment not complete")
roadmap = generate_roadmap(
st.get("skill_scores", []),
st.get("graph_paths", {}),
hours_per_day,
st["extraction"].domain
)
return AssessmentResult(
assessment_id=assessment_id,
extraction=st["extraction"],
skill_scores=st.get("skill_scores", []),
roadmap=roadmap,
time_to_ready_weeks=len(roadmap),
domain=st["extraction"].domain
)