trying to convert bulletin to new db system.

This commit is contained in:
Michael Woods
2025-12-25 15:07:25 -05:00
parent 58b366a235
commit 65063704e0

View File

@@ -5,6 +5,7 @@ from pydantic import BaseModel, Field, constr
from datetime import datetime from datetime import datetime
import transaction import transaction
from persistent.list import PersistentList from persistent.list import PersistentList
from ZODB.Connection import Connection
from ..database import DbDependency, TransactionDependency from ..database import DbDependency, TransactionDependency
from ..dependencies import get_current_http_user from ..dependencies import get_current_http_user
@@ -21,30 +22,29 @@ html_router = APIRouter(tags=["bulletins-html"])
# --- API Endpoints --- # --- API Endpoints ---
async def list_bulletins(, limit: int = 50, since: Optional[datetime] = None) -> dict: async def list_bulletins(connection: Connection, limit: int = 50, since: Optional[datetime] = None) -> dict:
with trans as conn: root = connection.root()
root = conn.root() bulletins_list: List[Bulletin] = root.get("bulletins", [])
bulletins_list: List[Bulletin] = root.get("bulletins", [])
# Newest first # Newest first
bulletins_list = sorted(bulletins_list, key=lambda b: b.created_at, reverse=True) bulletins_list = sorted(bulletins_list, key=lambda b: b.created_at, reverse=True)
if since: if since:
bulletins_list = [b for b in bulletins_list if b.created_at > since] bulletins_list = [b for b in bulletins_list if b.created_at > since]
bulletins = [ bulletins = [
{ {
"id": b.id, "id": b.id,
"author": b.author, "author": b.author,
"subject": b.subject, "subject": b.subject,
"body": b.body, "body": b.body,
"created_at": b.created_at.isoformat() + "Z", "created_at": b.created_at.isoformat() + "Z",
"updated_at": b.updated_at.isoformat() + "Z", "updated_at": b.updated_at.isoformat() + "Z",
} }
for b in bulletins_list[:limit] for b in bulletins_list[:limit]
] ]
return {"bulletins": bulletins} return {"bulletins": bulletins}
@router.get("/bulletins") @router.get("/bulletins")
async def api_list_bulletins( async def api_list_bulletins(