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
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(