Files
folkugat-web/folkugat_web/api/temes/index.py
2025-05-04 22:45:53 +02:00

66 lines
1.6 KiB
Python

import urllib.parse
from typing import Annotated
from fastapi import Request
from fastapi.params import Param
from folkugat_web.api import router
from folkugat_web.fragments import temes
from folkugat_web.services import auth
from folkugat_web.templates import templates
@router.get("/temes")
def page(
request: Request,
logged_in: auth.LoggedIn,
query: Annotated[str, Param()] = "",
properties: Annotated[list[str] | None, Param()] = None,
):
properties = properties or []
content_url = f"/api/content/temes?{temes.build_temes_params(query=query, properties=properties)}"
return templates.TemplateResponse(
"index.html",
{
"request": request,
"page_title": "Folkugat",
"content": content_url,
"logged_in": logged_in,
"animate": False,
}
)
@router.get("/api/content/temes")
def content(
request: Request,
logged_in: auth.LoggedIn,
query: Annotated[str, Param()] = "",
properties: Annotated[list[str] | None, Param()] = None,
):
properties = properties or []
return temes.temes_pagina(
request=request,
logged_in=logged_in,
query=query,
properties=properties,
)
@router.get("/api/temes/busca")
def busca(
request: Request,
logged_in: auth.LoggedIn,
query: Annotated[str, Param()],
properties: Annotated[list[str] | None, Param()] = None,
limit: int = 10,
offset: int = 0,
):
return temes.temes_busca(
request=request,
query=query,
properties=properties or [],
limit=limit,
offset=offset,
logged_in=logged_in,
)