Drop the Contributing and internals section, Architecture, Frontend, and dp-* component pages from the docs registry, prose files, nav, and legacy redirect target. Guard with tests that fail if they return.
59 lines
1.5 KiB
Python
59 lines
1.5 KiB
Python
# retoor <retoor@molodetz.nl>
|
|
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/welcome",
|
|
"/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"])
|