diff --git a/api/handlers.py b/api/handlers.py index a41e0c5..9b22458 100644 --- a/api/handlers.py +++ b/api/handlers.py @@ -2,7 +2,7 @@ from fastapi import APIRouter, Request, HTTPException, Depends from fastapi.responses import JSONResponse from typing import Dict, Any import config -from llm.models import LLMResponse, JiraWebhookPayload +from llm.models import LLMResponse, JiraWebhookPayload, JiraAnalysisResponse from database.database import get_db_session # Removed Session import here from sqlalchemy.orm import Session # Added correct SQLAlchemy import from database.crud import get_all_analysis_records, delete_all_analysis_records, get_analysis_by_id, create_analysis_record @@ -86,7 +86,4 @@ async def get_analysis_record_endpoint(record_id: int, db: Session = Depends(get record = get_analysis_by_id(db, record_id) if not record: raise HTTPException(status_code=404, detail="Analysis record not found") - return JSONResponse( - status_code=200, - content=record.dict() # Ensure proper data serialization - ) \ No newline at end of file + return JiraAnalysisResponse.model_validate(record) \ No newline at end of file diff --git a/jira_analyses.db b/jira_analyses.db index 64627cb..f913f03 100644 Binary files a/jira_analyses.db and b/jira_analyses.db differ diff --git a/llm/models.py b/llm/models.py index 624d146..82f1048 100644 --- a/llm/models.py +++ b/llm/models.py @@ -53,4 +53,19 @@ class AnalysisFlags(BaseModel): } ) except Exception as e: - logger.error(f"Failed to track model usage: {e}") \ No newline at end of file + logger.error(f"Failed to track model usage: {e}") +from pydantic import BaseModel, Field +from datetime import datetime + +class JiraAnalysisResponse(BaseModel): + model_config = ConfigDict(from_attributes=True) + id: int + issue_key: str + status: str + issue_summary: str + request_payload: dict + analysis_result: Optional[dict] = None + created_at: datetime + updated_at: datetime + error_message: Optional[str] = None + raw_response: Optional[dict] = None \ No newline at end of file