# retoor from fastapi import APIRouter, Request from fastapi.responses import RedirectResponse router = APIRouter(include_in_schema=False) LEGACY_PATHS = { "/rol": "/roll", "/standaard": "/standard", "/mensen": "/people", "/binnen": "/join", "/voorwaarden": "/terms", "/docs/welkom": "/docs/welcome", "/docs/schrijven": "/docs/writing", "/docs/binnen": "/docs/join", "/docs/juridisch": "/docs/legal", "/docs/architectuur": "/docs/architecture", "/docs/beheer": "/docs/admin", "/docs/api/inhoud": "/docs/api/content", "/docs/api/binnen": "/docs/api/join", "/docs/api/beheer": "/docs/api/admin", } def _target(request, path): query = request.url.query return f"{path}?{query}" if query else path def _redirect(request, path): status = 301 if request.method in ("GET", "HEAD") else 308 return RedirectResponse(_target(request, path), status_code=status) @router.get("/mensen/{username}") async def legacy_person(request: Request, username: str): return _redirect(request, f"/people/{username}") @router.post("/binnen") async def legacy_join_post(request: Request): return _redirect(request, "/join") @router.post("/voorwaarden/accept") async def legacy_terms_accept(request: Request): return _redirect(request, "/terms/accept") def _make_handler(target): async def handler(request: Request): return _redirect(request, target) return handler for _old, _new in LEGACY_PATHS.items(): router.add_api_route(_old, _make_handler(_new), methods=["GET"])