trying to convert bulletin to new db system.
This commit is contained in:
@@ -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(
|
||||||
|
|||||||
Reference in New Issue
Block a user