fix: Fix /api/version endpoint path and save all review events to DB

This commit is contained in:
Primakov Alexandr Alexandrovich
2025-10-13 14:46:28 +03:00
parent 47bbb4ebc4
commit 8d231b49db
4 changed files with 108 additions and 139 deletions

View File

@@ -118,7 +118,7 @@ async def health_check():
return {"status": "healthy"}
@app.get("/version")
@app.get("/api/version")
async def get_version():
"""Get backend version"""
try:
@@ -128,7 +128,8 @@ async def get_version():
else:
version = "unknown"
return {"version": version}
except Exception:
except Exception as e:
print(f"Error reading version: {e}")
return {"version": "unknown"}

View File

@@ -169,6 +169,22 @@ class ReviewTaskWorker:
# Send initial "review started" message
logger.info(f" 📢 Отправка начального сообщения о старте review...")
try:
# Save initial event to database
from app.models.review_event import ReviewEvent
initial_db_event = ReviewEvent(
review_id=review.id,
event_type="review_started",
message=f"Начало review для PR #{pull_request.pr_number}",
data={
"repository_id": repository.id,
"repository_name": f"{repository.repo_owner}/{repository.repo_name}"
}
)
db.add(initial_db_event)
await db.commit()
logger.info(f" 💾 Начальное событие сохранено в БД: {initial_db_event.id}")
# Broadcast initial message
initial_message = {
"type": "review_started",
"review_id": review.id,
@@ -184,6 +200,8 @@ class ReviewTaskWorker:
logger.info(f" ✅ Начальное сообщение отправлено: {len(manager.active_connections)} подключений")
except Exception as e:
logger.error(f" ❌ Ошибка отправки начального сообщения: {e}")
import traceback
traceback.print_exc()
# Create event handler
async def on_review_event(event: dict):
@@ -240,6 +258,19 @@ class ReviewTaskWorker:
# Send completion message
try:
# Save completion event to database
from app.models.review_event import ReviewEvent
completion_db_event = ReviewEvent(
review_id=review.id,
event_type="review_completed",
message=f"Review завершен для PR #{pull_request.pr_number}",
data={}
)
db.add(completion_db_event)
await db.commit()
logger.info(f" 💾 Событие завершения сохранено в БД: {completion_db_event.id}")
# Broadcast completion message
completion_message = {
"type": "review_completed",
"review_id": review.id,
@@ -250,8 +281,11 @@ class ReviewTaskWorker:
}
}
await manager.broadcast(completion_message)
logger.info(f" 📢 Сообщение о завершении отправлено: {len(manager.active_connections)} подключений")
except Exception as e:
logger.error(f" ❌ Ошибка отправки сообщения о завершении: {e}")
import traceback
traceback.print_exc()
# Global worker instance