From 4dfc2b18e854c0c2ba5258774d20477b859a904e Mon Sep 17 00:00:00 2001 From: Bulat Kurbanov Date: Sun, 14 May 2023 01:46:35 +0200 Subject: [PATCH] Use Annotated --- fastapi_book_server/app/views/author.py | 12 +++++++----- fastapi_book_server/app/views/book.py | 10 +++++----- fastapi_book_server/app/views/genre.py | 6 ++++-- fastapi_book_server/app/views/sequence.py | 8 +++++--- 4 files changed, 21 insertions(+), 15 deletions(-) diff --git a/fastapi_book_server/app/views/author.py b/fastapi_book_server/app/views/author.py index 46dfd67..70ee4c0 100644 --- a/fastapi_book_server/app/views/author.py +++ b/fastapi_book_server/app/views/author.py @@ -1,3 +1,5 @@ +from typing import Annotated + from fastapi import APIRouter, Depends, HTTPException, Request, status from fastapi_pagination import Params @@ -37,7 +39,7 @@ async def get_authors(): @author_router.get("/random", response_model=Author) async def get_random_author( request: Request, - allowed_langs: frozenset[str] = Depends(get_allowed_langs), + allowed_langs: Annotated[frozenset[str], Depends(get_allowed_langs)], ): author_id = await GetRandomAuthorService.get_random_id( {"allowed_langs": allowed_langs}, request.app.state.redis @@ -81,7 +83,7 @@ async def get_author_annotation(id: int): "/{id}/books", response_model=Page[AuthorBook], dependencies=[Depends(Params)] ) async def get_author_books( - id: int, allowed_langs: list[str] = Depends(get_allowed_langs) + id: int, allowed_langs: Annotated[list[str], Depends(get_allowed_langs)] ): return await paginate( BookDB.objects.prefetch_related(["source"]) @@ -97,7 +99,7 @@ async def get_author_books( async def search_authors( query: str, request: Request, - allowed_langs: frozenset[str] = Depends(get_allowed_langs), + allowed_langs: Annotated[frozenset[str], Depends(get_allowed_langs)], ): return await AuthorMeiliSearchService.get( {"query": query, "allowed_langs": allowed_langs}, @@ -114,7 +116,7 @@ translator_router = APIRouter( @translator_router.get("/{id}/books", response_model=Page[TranslatedBook]) async def get_translated_books( - id: int, allowed_langs: list[str] = Depends(get_allowed_langs) + id: int, allowed_langs: Annotated[list[str], Depends(get_allowed_langs)] ): return await paginate( BookDB.objects.prefetch_related(["source"]) @@ -133,7 +135,7 @@ async def get_translated_books( async def search_translators( query: str, request: Request, - allowed_langs: frozenset[str] = Depends(get_allowed_langs), + allowed_langs: Annotated[frozenset[str], Depends(get_allowed_langs)], ): return await TranslatorMeiliSearchService.get( {"query": query, "allowed_langs": allowed_langs}, diff --git a/fastapi_book_server/app/views/book.py b/fastapi_book_server/app/views/book.py index b162220..0e59ec7 100644 --- a/fastapi_book_server/app/views/book.py +++ b/fastapi_book_server/app/views/book.py @@ -1,4 +1,4 @@ -from typing import Optional +from typing import Annotated, Optional from fastapi import APIRouter, Depends, HTTPException, Request, status @@ -34,7 +34,7 @@ DETAIL_SELECT_RELATED_FIELDS = ["sequences", "genres"] @book_router.get("/", response_model=Page[RemoteBook], dependencies=[Depends(Params)]) async def get_books( request: Request, - book_filter: dict = Depends(get_book_filter), + book_filter: Annotated[dict, Depends(get_book_filter)], ): return await BookFilterService.get(book_filter, request.app.state.redis) @@ -43,7 +43,7 @@ async def get_books( "/base/", response_model=Page[BookBaseInfo], dependencies=[Depends(Params)] ) async def get_base_books_info( - request: Request, book_filter: dict = Depends(get_book_filter) + request: Request, book_filter: Annotated[dict, Depends(get_book_filter)] ): return await BookBaseInfoFilterService.get(book_filter, request.app.state.redis) @@ -57,7 +57,7 @@ async def get_last_book_id(): @book_router.get("/random", response_model=BookDetail) async def get_random_book( request: Request, - allowed_langs: frozenset[str] = Depends(get_allowed_langs), + allowed_langs: Annotated[frozenset[str], Depends(get_allowed_langs)], genre: Optional[int] = None, ): book_id = await GetRandomBookService.get_random_id( @@ -124,7 +124,7 @@ async def get_book_annotation(id: int): async def search_books( query: str, request: Request, - allowed_langs: frozenset[str] = Depends(get_allowed_langs), + allowed_langs: Annotated[frozenset[str], Depends(get_allowed_langs)], ): return await BookMeiliSearchService.get( {"query": query, "allowed_langs": allowed_langs}, diff --git a/fastapi_book_server/app/views/genre.py b/fastapi_book_server/app/views/genre.py index e320aa5..4cc6f36 100644 --- a/fastapi_book_server/app/views/genre.py +++ b/fastapi_book_server/app/views/genre.py @@ -1,3 +1,5 @@ +from typing import Annotated + from fastapi import APIRouter, Depends, HTTPException, Request, status from fastapi_pagination import Params @@ -20,7 +22,7 @@ PREFETCH_RELATED_FIELDS = ["source"] @genre_router.get("/", response_model=Page[Genre], dependencies=[Depends(Params)]) -async def get_genres(genre_filter: dict = Depends(get_genre_filter)): +async def get_genres(genre_filter: Annotated[dict, Depends(get_genre_filter)]): return await paginate( GenreDB.objects.prefetch_related(PREFETCH_RELATED_FIELDS) .filter(**genre_filter) @@ -53,7 +55,7 @@ async def get_genre(id: int): async def search_genres( query: str, request: Request, - allowed_langs: frozenset[str] = Depends(get_allowed_langs), + allowed_langs: Annotated[frozenset[str], Depends(get_allowed_langs)], ): return await GenreMeiliSearchService.get( {"query": query, "allowed_langs": allowed_langs}, diff --git a/fastapi_book_server/app/views/sequence.py b/fastapi_book_server/app/views/sequence.py index b099ddf..33c0e7d 100644 --- a/fastapi_book_server/app/views/sequence.py +++ b/fastapi_book_server/app/views/sequence.py @@ -1,3 +1,5 @@ +from typing import Annotated + from fastapi import APIRouter, Depends, HTTPException, Request, status from fastapi_pagination import Params @@ -27,7 +29,7 @@ async def get_sequences(): @sequence_router.get("/random", response_model=Sequence) async def get_random_sequence( request: Request, - allowed_langs: frozenset[str] = Depends(get_allowed_langs), + allowed_langs: Annotated[frozenset[str], Depends(get_allowed_langs)], ): sequence_id = await GetRandomSequenceService.get_random_id( {"allowed_langs": allowed_langs}, @@ -51,7 +53,7 @@ async def get_sequence(id: int): dependencies=[Depends(Params)], ) async def get_sequence_books( - id: int, allowed_langs: list[str] = Depends(get_allowed_langs) + id: int, allowed_langs: Annotated[list[str], Depends(get_allowed_langs)] ): return await paginate( BookDB.objects.prefetch_related(["source"]) @@ -69,7 +71,7 @@ async def get_sequence_books( async def search_sequences( query: str, request: Request, - allowed_langs: frozenset[str] = Depends(get_allowed_langs), + allowed_langs: Annotated[frozenset[str], Depends(get_allowed_langs)], ): return await SequenceMeiliSearchService.get( {"query": query, "allowed_langs": allowed_langs},