From 65063704e02215b50006cde6dc2c7a257582bce0 Mon Sep 17 00:00:00 2001 From: Michael Woods Date: Thu, 25 Dec 2025 15:07:25 -0500 Subject: [PATCH] trying to convert bulletin to new db system. --- packetserver/http/routers/bulletins.py | 40 +++++++++++++------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/packetserver/http/routers/bulletins.py b/packetserver/http/routers/bulletins.py index 9753235..660c96f 100644 --- a/packetserver/http/routers/bulletins.py +++ b/packetserver/http/routers/bulletins.py @@ -5,6 +5,7 @@ from pydantic import BaseModel, Field, constr from datetime import datetime import transaction from persistent.list import PersistentList +from ZODB.Connection import Connection from ..database import DbDependency, TransactionDependency from ..dependencies import get_current_http_user @@ -21,30 +22,29 @@ html_router = APIRouter(tags=["bulletins-html"]) # --- API Endpoints --- -async def list_bulletins(, limit: int = 50, since: Optional[datetime] = None) -> dict: - with trans as conn: - root = conn.root() - bulletins_list: List[Bulletin] = root.get("bulletins", []) +async def list_bulletins(connection: Connection, limit: int = 50, since: Optional[datetime] = None) -> dict: + root = connection.root() + bulletins_list: List[Bulletin] = root.get("bulletins", []) - # Newest first - bulletins_list = sorted(bulletins_list, key=lambda b: b.created_at, reverse=True) + # Newest first + bulletins_list = sorted(bulletins_list, key=lambda b: b.created_at, reverse=True) - if since: - bulletins_list = [b for b in bulletins_list if b.created_at > since] + if since: + bulletins_list = [b for b in bulletins_list if b.created_at > since] - bulletins = [ - { - "id": b.id, - "author": b.author, - "subject": b.subject, - "body": b.body, - "created_at": b.created_at.isoformat() + "Z", - "updated_at": b.updated_at.isoformat() + "Z", - } - for b in bulletins_list[:limit] - ] + bulletins = [ + { + "id": b.id, + "author": b.author, + "subject": b.subject, + "body": b.body, + "created_at": b.created_at.isoformat() + "Z", + "updated_at": b.updated_at.isoformat() + "Z", + } + for b in bulletins_list[:limit] + ] - return {"bulletins": bulletins} + return {"bulletins": bulletins} @router.get("/bulletins") async def api_list_bulletins(