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, )