27 lines
933 B
Python
27 lines
933 B
Python
# retoor <retoor@molodetz.nl>
|
|
from fastapi import APIRouter, Request
|
|
|
|
from molodetz.database import list_notifications, mark_all_read, unread_count
|
|
from molodetz.responses import action_result, respond
|
|
from molodetz.schemas.account import NotificationsOut
|
|
from molodetz.seo import base_seo_context
|
|
from molodetz.utils.auth import require_user
|
|
|
|
router = APIRouter()
|
|
|
|
|
|
@router.get("")
|
|
async def notifications_page(request: Request):
|
|
user = require_user(request)
|
|
rows = list_notifications(user["uid"])
|
|
seo = base_seo_context(request, "Meldingen", robots="noindex,nofollow")
|
|
ctx = {"notifications": rows, "unread": unread_count(user["uid"]), "seo": seo}
|
|
return respond(request, "notifications.html", ctx, model=NotificationsOut)
|
|
|
|
|
|
@router.post("/read")
|
|
async def notifications_read(request: Request):
|
|
user = require_user(request)
|
|
mark_all_read(user["uid"])
|
|
return action_result(request, "/notifications")
|