mirror of
https://github.com/jkingsman/Remote-Terminal-for-MeshCore.git
synced 2026-03-28 17:43:05 +01:00
36 lines
888 B
Python
36 lines
888 B
Python
"""Read state management endpoints."""
|
|
|
|
import logging
|
|
import time
|
|
|
|
from fastapi import APIRouter
|
|
|
|
from app.database import db
|
|
|
|
logger = logging.getLogger(__name__)
|
|
router = APIRouter(prefix="/read-state", tags=["read-state"])
|
|
|
|
|
|
@router.post("/mark-all-read")
|
|
async def mark_all_read() -> dict:
|
|
"""Mark all contacts and channels as read.
|
|
|
|
Updates last_read_at to current timestamp for all contacts and channels
|
|
in a single database transaction.
|
|
"""
|
|
now = int(time.time())
|
|
|
|
# Update all contacts and channels in one transaction
|
|
await db.conn.execute(
|
|
"UPDATE contacts SET last_read_at = ?",
|
|
(now,)
|
|
)
|
|
await db.conn.execute(
|
|
"UPDATE channels SET last_read_at = ?",
|
|
(now,)
|
|
)
|
|
await db.conn.commit()
|
|
|
|
logger.info("Marked all contacts and channels as read at %d", now)
|
|
return {"status": "ok", "timestamp": now}
|