feat: Add review events persistence, version display, and auto-versioning system
This commit is contained in:
@@ -6,9 +6,11 @@ from sqlalchemy import select, func
|
||||
from sqlalchemy.orm import joinedload
|
||||
|
||||
from app.database import get_db
|
||||
from app.models import Review, Comment, PullRequest
|
||||
from app.models import Review, Comment, PullRequest, ReviewEvent
|
||||
from app.schemas.review import ReviewResponse, ReviewList, ReviewStats, PullRequestInfo, CommentResponse
|
||||
from app.schemas.review_event import ReviewEvent as ReviewEventSchema
|
||||
from app.agents import ReviewerAgent
|
||||
from typing import List
|
||||
|
||||
router = APIRouter()
|
||||
|
||||
@@ -216,3 +218,27 @@ async def get_review_stats(db: AsyncSession = Depends(get_db)):
|
||||
avg_comments_per_review=round(avg_comments, 2)
|
||||
)
|
||||
|
||||
|
||||
@router.get("/{review_id}/events", response_model=List[ReviewEventSchema])
|
||||
async def get_review_events(
|
||||
review_id: int,
|
||||
db: AsyncSession = Depends(get_db)
|
||||
):
|
||||
"""Get all events for a specific review"""
|
||||
# Check if review exists
|
||||
result = await db.execute(select(Review).where(Review.id == review_id))
|
||||
review = result.scalar_one_or_none()
|
||||
|
||||
if not review:
|
||||
raise HTTPException(status_code=404, detail="Review not found")
|
||||
|
||||
# Get events
|
||||
events_result = await db.execute(
|
||||
select(ReviewEvent)
|
||||
.where(ReviewEvent.review_id == review_id)
|
||||
.order_by(ReviewEvent.created_at)
|
||||
)
|
||||
events = events_result.scalars().all()
|
||||
|
||||
return events
|
||||
|
||||
|
||||
Reference in New Issue
Block a user