| 123456789101112131415161718192021222324252627282930313233343536373839 |
- from fastapi import APIRouter, HTTPException, status
- from app.schemas.analysis import (
- AnalysisSessionCreateRequest,
- AnalysisSessionListResponse,
- AnalysisSessionResponse,
- AnalysisSessionSnapshot,
- )
- from app.services.analysis_service import AnalysisService
- router = APIRouter()
- service = AnalysisService()
- @router.post(
- "/sessions",
- response_model=AnalysisSessionResponse,
- status_code=status.HTTP_201_CREATED,
- )
- def create_analysis_session(
- payload: AnalysisSessionCreateRequest,
- ) -> AnalysisSessionResponse:
- return service.create_session(payload)
- @router.get("/sessions", response_model=AnalysisSessionListResponse)
- def list_analysis_sessions() -> AnalysisSessionListResponse:
- return service.list_sessions()
- @router.get("/sessions/{session_id}", response_model=AnalysisSessionSnapshot)
- def get_analysis_session(session_id: str) -> AnalysisSessionSnapshot:
- snapshot = service.get_session(session_id)
- if snapshot is None:
- raise HTTPException(
- status_code=status.HTTP_404_NOT_FOUND,
- detail=f"Analysis session '{session_id}' was not found.",
- )
- return snapshot
|