Skip to content
This repository was archived by the owner on Jun 5, 2025. It is now read-only.

Commit 079518d

Browse files
authored
Merge pull request #391 from stacklok/issue-300
fix: do not instantiate dbreader on each call
2 parents 6dca3a7 + 6141dab commit 079518d

File tree

1 file changed

+11
-4
lines changed

1 file changed

+11
-4
lines changed

src/codegate/dashboard/dashboard.py

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
from typing import AsyncGenerator, List
33

44
import structlog
5-
from fastapi import APIRouter
5+
from fastapi import APIRouter, Depends
66
from fastapi.responses import StreamingResponse
77

88
from codegate.dashboard.post_processing import (
@@ -15,11 +15,18 @@
1515
logger = structlog.get_logger("codegate")
1616

1717
dashboard_router = APIRouter(tags=["Dashboard"])
18-
db_reader = DbReader()
18+
db_reader = None
19+
20+
21+
def get_db_reader():
22+
global db_reader
23+
if db_reader is None:
24+
db_reader = DbReader()
25+
return db_reader
1926

2027

2128
@dashboard_router.get("/dashboard/messages")
22-
def get_messages() -> List[Conversation]:
29+
def get_messages(db_reader: DbReader = Depends(get_db_reader)) -> List[Conversation]:
2330
"""
2431
Get all the messages from the database and return them as a list of conversations.
2532
"""
@@ -29,7 +36,7 @@ def get_messages() -> List[Conversation]:
2936

3037

3138
@dashboard_router.get("/dashboard/alerts")
32-
def get_alerts() -> List[AlertConversation]:
39+
def get_alerts(db_reader: DbReader = Depends(get_db_reader)) -> List[AlertConversation]:
3340
"""
3441
Get all the messages from the database and return them as a list of conversations.
3542
"""

0 commit comments

Comments
 (0)