First commit

This commit is contained in:
Johan
2025-12-17 13:29:14 +01:00
commit cc50161771
43 changed files with 3665 additions and 0 deletions

View File

@@ -0,0 +1,28 @@
from typing import List, Optional
import httpx
from app.core.exceptions import DALException
from app.models.movie import Movie
from app.repositories._base_client import api_client
class MovieRepository:
async def list(self, skip: int = 0, limit: int = 100) -> List[Movie]:
# TODO : (Étape 2) Remplacer la ligne suivante par un appel à
# response = await api_client._request("GET", "/movies/", params={"skip": skip, "limit": limit})
# La ligne ci-dessous doit être décommentée une fois le TODO complété
response = await api_client._request("GET", "/movies/", params={"skip": skip, "limit": limit})
return [Movie.model_validate(m) for m in response.json()]
async def find_by_id(self, movie_id: int) -> Optional[Movie]:
try:
response = await api_client._request("GET", f"/movies/{movie_id}")
# TODO : (Étape 2) Remplacer la ligne suivante par un appel à
# response = await api_client._request("GET", f"/movies/{movie_id}")
# La ligne ci-dessous doit être décommentée une fois le TODO complété
return Movie.model_validate(response.json())
except DALException as e:
if e.status_code == 404:
return None
raise
movie_repository = MovieRepository()