First commit

This commit is contained in:
Johan
2025-12-18 14:52:33 +01:00
commit 8ff4600e4c
27 changed files with 3300 additions and 0 deletions

View File

@@ -0,0 +1,26 @@
from fastapi import Request
from typing import Any, Dict, Optional
from app.repositories import fake_db_repo
from app.models.usermodel import UserModel
async def get_context(request: Request) -> Dict[str, Any]:
"""
Crée le contexte pour chaque requête GraphQL.
C'est ici que nous gérons l'authentification (AuthN).
Nous lisons l'en-tête HTTP Authorization, validons le "token" (simulé ici),
et injectons 'current_user' dans le contexte.
"""
current_user: Optional[UserModel] = None
# TODO 1.1: Implémenter l'authentification (AuthN)
# 1. Lire l'en-tête `Authorization` (request.headers.get(...))
# 2. Simuler la validation du token (admin, alice, bob)
# 3. Récupérer l'utilisateur depuis `fake_db_repo`
# 4. Injecter l'utilisateur sous la clé "current_user"
return {
"request": request,
"current_user": current_user # Injecté pour tous les resolvers
}