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

fix: do not instantiate dbreader on each call #391

Merged
merged 1 commit into from
Dec 17, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 11 additions & 4 deletions src/codegate/dashboard/dashboard.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
from typing import AsyncGenerator, List

import structlog
from fastapi import APIRouter
from fastapi import APIRouter, Depends
from fastapi.responses import StreamingResponse

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

dashboard_router = APIRouter(tags=["Dashboard"])
db_reader = DbReader()
db_reader = None


def get_db_reader():
global db_reader
if db_reader is None:
db_reader = DbReader()
return db_reader


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


@dashboard_router.get("/dashboard/alerts")
def get_alerts() -> List[AlertConversation]:
def get_alerts(db_reader: DbReader = Depends(get_db_reader)) -> List[AlertConversation]:
"""
Get all the messages from the database and return them as a list of conversations.
"""
Expand Down
Loading