"""Dependances communes aux routes.""" from __future__ import annotations from typing import Annotated from fastapi import Depends, Header from sqlalchemy.orm import Session from app.config import Settings, get_settings from app.db.session import get_db from app.services.errors import ShareForbiddenError MANAGEMENT_TOKEN_HEADER = "X-Management-Token" DbSession = Annotated[Session, Depends(get_db)] AppSettings = Annotated[Settings, Depends(get_settings)] def require_management_token( x_management_token: Annotated[str | None, Header(alias=MANAGEMENT_TOKEN_HEADER)] = None, ) -> str: """Recupere le secret de gestion depuis l'en-tete (jamais depuis l'URL).""" if not x_management_token: raise ShareForbiddenError("Jeton de gestion manquant.") return x_management_token ManagementToken = Annotated[str, Depends(require_management_token)]