aa-engine / app /api /routes.py
Godswill-IoT's picture
Upload 12 files
0d58787 verified
from fastapi import APIRouter, HTTPException
from app.contracts.dtos import AssessmentRequest, Submission, EvaluationResult
from app.container import container
router = APIRouter()
@router.post("/assessments/generate")
async def generate_assessment(request: AssessmentRequest):
if request.type == "exam":
service = container.get("exam_service")
if not service:
raise HTTPException(status_code=500, detail="Service not ready")
return service.generate_exam(request.learner_id, request.context)
elif request.type == "assignment":
service = container.get("assignment_service")
if not service:
raise HTTPException(status_code=500, detail="Service not ready")
return service.generate_assignment(request.learner_id, request.context)
else:
raise HTTPException(status_code=400, detail="Unsupported assessment type")
@router.post("/assessments/submit", response_model=EvaluationResult)
async def submit_assessment(submission: Submission):
service = container.get("evaluation_service")
if not service:
raise HTTPException(status_code=500, detail="Service not ready")
return service.evaluate_submission(submission)