aigenrec/luminabackend
0
1from fastapi import APIRouter, HTTPException, Depends2from services.evaluation_service import evaluation_service3from models.schemas import (4 EvaluationSubmitRequest, EvaluationResponse,5 SubjectiveTestGenerateRequest, SubjectiveTestResponse,6 SubjectiveTestSubmitRequest, SubjectiveTestResult7)8from typing import Any9from api.deps import get_current_user10 11router = APIRouter()12 13@router.post("/generate-test", response_model=SubjectiveTestResponse)14async def generate_subjective_test(15 request: SubjectiveTestGenerateRequest,16 current_user: dict = Depends(get_current_user)17):18 """19 Generate a subjective test for a topic20 """21 try:22 result = await evaluation_service.generate_subjective_test(23 project_id=request.project_id,24 topic=request.topic,25 num_questions=request.num_questions26 )27 return result28 except Exception as e:29 raise HTTPException(500, str(e))30 31@router.post("/submit-test", response_model=SubjectiveTestResult)32async def submit_subjective_test_endpoint(33 request: SubjectiveTestSubmitRequest,34 current_user: dict = Depends(get_current_user)35):36 """37 Submit subjective test answers for evaluation38 """39 try:40 result = await evaluation_service.submit_subjective_test(41 test_id=request.test_id,42 answers=request.answers43 )44 return result45 except Exception as e:46 raise HTTPException(500, str(e))47 48@router.post("/submit", response_model=EvaluationResponse)49async def submit_evaluation(50 request: EvaluationSubmitRequest,51 current_user: dict = Depends(get_current_user)52):53 """54 Submit a subjective answer for AI evaluation (Single Question)55 """56 try:57 result = await evaluation_service.evaluate_answer(58 project_id=request.project_id,59 user_id=current_user["id"],60 question=request.question,61 user_answer=request.user_answer62 )63 return result64 except Exception as e:65 raise HTTPException(500, str(e))