mirror of
https://github.com/flibusta-apps/book_library_server.git
synced 2025-12-06 07:05:36 +01:00
Use Annotated
This commit is contained in:
@@ -1,3 +1,5 @@
|
|||||||
|
from typing import Annotated
|
||||||
|
|
||||||
from fastapi import APIRouter, Depends, HTTPException, Request, status
|
from fastapi import APIRouter, Depends, HTTPException, Request, status
|
||||||
|
|
||||||
from fastapi_pagination import Params
|
from fastapi_pagination import Params
|
||||||
@@ -37,7 +39,7 @@ async def get_authors():
|
|||||||
@author_router.get("/random", response_model=Author)
|
@author_router.get("/random", response_model=Author)
|
||||||
async def get_random_author(
|
async def get_random_author(
|
||||||
request: Request,
|
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(
|
author_id = await GetRandomAuthorService.get_random_id(
|
||||||
{"allowed_langs": allowed_langs}, request.app.state.redis
|
{"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)]
|
"/{id}/books", response_model=Page[AuthorBook], dependencies=[Depends(Params)]
|
||||||
)
|
)
|
||||||
async def get_author_books(
|
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(
|
return await paginate(
|
||||||
BookDB.objects.prefetch_related(["source"])
|
BookDB.objects.prefetch_related(["source"])
|
||||||
@@ -97,7 +99,7 @@ async def get_author_books(
|
|||||||
async def search_authors(
|
async def search_authors(
|
||||||
query: str,
|
query: str,
|
||||||
request: Request,
|
request: Request,
|
||||||
allowed_langs: frozenset[str] = Depends(get_allowed_langs),
|
allowed_langs: Annotated[frozenset[str], Depends(get_allowed_langs)],
|
||||||
):
|
):
|
||||||
return await AuthorMeiliSearchService.get(
|
return await AuthorMeiliSearchService.get(
|
||||||
{"query": query, "allowed_langs": allowed_langs},
|
{"query": query, "allowed_langs": allowed_langs},
|
||||||
@@ -114,7 +116,7 @@ translator_router = APIRouter(
|
|||||||
|
|
||||||
@translator_router.get("/{id}/books", response_model=Page[TranslatedBook])
|
@translator_router.get("/{id}/books", response_model=Page[TranslatedBook])
|
||||||
async def get_translated_books(
|
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(
|
return await paginate(
|
||||||
BookDB.objects.prefetch_related(["source"])
|
BookDB.objects.prefetch_related(["source"])
|
||||||
@@ -133,7 +135,7 @@ async def get_translated_books(
|
|||||||
async def search_translators(
|
async def search_translators(
|
||||||
query: str,
|
query: str,
|
||||||
request: Request,
|
request: Request,
|
||||||
allowed_langs: frozenset[str] = Depends(get_allowed_langs),
|
allowed_langs: Annotated[frozenset[str], Depends(get_allowed_langs)],
|
||||||
):
|
):
|
||||||
return await TranslatorMeiliSearchService.get(
|
return await TranslatorMeiliSearchService.get(
|
||||||
{"query": query, "allowed_langs": allowed_langs},
|
{"query": query, "allowed_langs": allowed_langs},
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
from typing import Optional
|
from typing import Annotated, Optional
|
||||||
|
|
||||||
from fastapi import APIRouter, Depends, HTTPException, Request, status
|
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)])
|
@book_router.get("/", response_model=Page[RemoteBook], dependencies=[Depends(Params)])
|
||||||
async def get_books(
|
async def get_books(
|
||||||
request: Request,
|
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)
|
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)]
|
"/base/", response_model=Page[BookBaseInfo], dependencies=[Depends(Params)]
|
||||||
)
|
)
|
||||||
async def get_base_books_info(
|
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)
|
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)
|
@book_router.get("/random", response_model=BookDetail)
|
||||||
async def get_random_book(
|
async def get_random_book(
|
||||||
request: Request,
|
request: Request,
|
||||||
allowed_langs: frozenset[str] = Depends(get_allowed_langs),
|
allowed_langs: Annotated[frozenset[str], Depends(get_allowed_langs)],
|
||||||
genre: Optional[int] = None,
|
genre: Optional[int] = None,
|
||||||
):
|
):
|
||||||
book_id = await GetRandomBookService.get_random_id(
|
book_id = await GetRandomBookService.get_random_id(
|
||||||
@@ -124,7 +124,7 @@ async def get_book_annotation(id: int):
|
|||||||
async def search_books(
|
async def search_books(
|
||||||
query: str,
|
query: str,
|
||||||
request: Request,
|
request: Request,
|
||||||
allowed_langs: frozenset[str] = Depends(get_allowed_langs),
|
allowed_langs: Annotated[frozenset[str], Depends(get_allowed_langs)],
|
||||||
):
|
):
|
||||||
return await BookMeiliSearchService.get(
|
return await BookMeiliSearchService.get(
|
||||||
{"query": query, "allowed_langs": allowed_langs},
|
{"query": query, "allowed_langs": allowed_langs},
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
from typing import Annotated
|
||||||
|
|
||||||
from fastapi import APIRouter, Depends, HTTPException, Request, status
|
from fastapi import APIRouter, Depends, HTTPException, Request, status
|
||||||
|
|
||||||
from fastapi_pagination import Params
|
from fastapi_pagination import Params
|
||||||
@@ -20,7 +22,7 @@ PREFETCH_RELATED_FIELDS = ["source"]
|
|||||||
|
|
||||||
|
|
||||||
@genre_router.get("/", response_model=Page[Genre], dependencies=[Depends(Params)])
|
@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(
|
return await paginate(
|
||||||
GenreDB.objects.prefetch_related(PREFETCH_RELATED_FIELDS)
|
GenreDB.objects.prefetch_related(PREFETCH_RELATED_FIELDS)
|
||||||
.filter(**genre_filter)
|
.filter(**genre_filter)
|
||||||
@@ -53,7 +55,7 @@ async def get_genre(id: int):
|
|||||||
async def search_genres(
|
async def search_genres(
|
||||||
query: str,
|
query: str,
|
||||||
request: Request,
|
request: Request,
|
||||||
allowed_langs: frozenset[str] = Depends(get_allowed_langs),
|
allowed_langs: Annotated[frozenset[str], Depends(get_allowed_langs)],
|
||||||
):
|
):
|
||||||
return await GenreMeiliSearchService.get(
|
return await GenreMeiliSearchService.get(
|
||||||
{"query": query, "allowed_langs": allowed_langs},
|
{"query": query, "allowed_langs": allowed_langs},
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
from typing import Annotated
|
||||||
|
|
||||||
from fastapi import APIRouter, Depends, HTTPException, Request, status
|
from fastapi import APIRouter, Depends, HTTPException, Request, status
|
||||||
|
|
||||||
from fastapi_pagination import Params
|
from fastapi_pagination import Params
|
||||||
@@ -27,7 +29,7 @@ async def get_sequences():
|
|||||||
@sequence_router.get("/random", response_model=Sequence)
|
@sequence_router.get("/random", response_model=Sequence)
|
||||||
async def get_random_sequence(
|
async def get_random_sequence(
|
||||||
request: Request,
|
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(
|
sequence_id = await GetRandomSequenceService.get_random_id(
|
||||||
{"allowed_langs": allowed_langs},
|
{"allowed_langs": allowed_langs},
|
||||||
@@ -51,7 +53,7 @@ async def get_sequence(id: int):
|
|||||||
dependencies=[Depends(Params)],
|
dependencies=[Depends(Params)],
|
||||||
)
|
)
|
||||||
async def get_sequence_books(
|
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(
|
return await paginate(
|
||||||
BookDB.objects.prefetch_related(["source"])
|
BookDB.objects.prefetch_related(["source"])
|
||||||
@@ -69,7 +71,7 @@ async def get_sequence_books(
|
|||||||
async def search_sequences(
|
async def search_sequences(
|
||||||
query: str,
|
query: str,
|
||||||
request: Request,
|
request: Request,
|
||||||
allowed_langs: frozenset[str] = Depends(get_allowed_langs),
|
allowed_langs: Annotated[frozenset[str], Depends(get_allowed_langs)],
|
||||||
):
|
):
|
||||||
return await SequenceMeiliSearchService.get(
|
return await SequenceMeiliSearchService.get(
|
||||||
{"query": query, "allowed_langs": allowed_langs},
|
{"query": query, "allowed_langs": allowed_langs},
|
||||||
|
|||||||
Reference in New Issue
Block a user