mirror of
https://github.com/flibusta-apps/book_library_server.git
synced 2025-12-08 09:30:43 +01:00
Add sequences to BookDetail
This commit is contained in:
@@ -27,8 +27,8 @@ author_router = APIRouter(
|
||||
)
|
||||
|
||||
|
||||
SELECT_RELATED_FIELDS = ["source"]
|
||||
PREFETCH_RELATED_FIELDS = ["annotations"]
|
||||
PREFETCH_RELATED_FIELDS = ["source"]
|
||||
SELECT_RELATED_FIELDS = ["annotations"]
|
||||
|
||||
|
||||
@author_router.get(
|
||||
@@ -107,8 +107,8 @@ async def get_author_books(
|
||||
id: int, allowed_langs: list[str] = Depends(get_allowed_langs)
|
||||
):
|
||||
return await paginate(
|
||||
BookDB.objects.select_related(["source"])
|
||||
.prefetch_related(["annotations", "translators"])
|
||||
BookDB.objects.prefetch_related(["source"])
|
||||
.select_related(["annotations", "translators"])
|
||||
.filter(authors__id=id, lang__in=allowed_langs, is_deleted=False)
|
||||
.order_by("title")
|
||||
)
|
||||
@@ -137,8 +137,8 @@ async def get_translated_books(
|
||||
id: int, allowed_langs: list[str] = Depends(get_allowed_langs)
|
||||
):
|
||||
return await paginate(
|
||||
BookDB.objects.select_related(["source"])
|
||||
.prefetch_related(["annotations", "authors"])
|
||||
BookDB.objects.prefetch_related(["source"])
|
||||
.select_related(["annotations", "authors"])
|
||||
.filter(
|
||||
translators__id=id,
|
||||
lang__in=allowed_langs,
|
||||
|
||||
@@ -29,8 +29,8 @@ book_router = APIRouter(
|
||||
dependencies=[Depends(check_token)],
|
||||
)
|
||||
|
||||
SELECT_RELATED_FIELDS = ["source"]
|
||||
PREFETCH_RELATED_FIELDS = ["authors", "translators", "annotations"]
|
||||
PREFETCH_RELATED_FIELDS = ["source"]
|
||||
SELECT_RELATED_FIELDS = ["authors", "translators", "annotations"]
|
||||
|
||||
|
||||
@book_router.get(
|
||||
@@ -59,17 +59,19 @@ async def create_book(data: Union[CreateBook, CreateRemoteBook]):
|
||||
async def get_random_book(allowed_langs: list[str] = Depends(get_allowed_langs)):
|
||||
book_id = await GetRandomBookService.get_random_id(allowed_langs)
|
||||
|
||||
return (
|
||||
await BookDB.objects.select_related(SELECT_RELATED_FIELDS)
|
||||
book = (
|
||||
await BookDB.objects.select_related(SELECT_RELATED_FIELDS + ["sequences"])
|
||||
.prefetch_related(PREFETCH_RELATED_FIELDS)
|
||||
.get(id=book_id)
|
||||
)
|
||||
|
||||
return book
|
||||
|
||||
|
||||
@book_router.get("/{id}", response_model=BookDetail)
|
||||
async def get_book(id: int):
|
||||
book = (
|
||||
await BookDB.objects.select_related(SELECT_RELATED_FIELDS)
|
||||
await BookDB.objects.select_related(SELECT_RELATED_FIELDS + ["sequences"])
|
||||
.prefetch_related(PREFETCH_RELATED_FIELDS)
|
||||
.get_or_none(id=id)
|
||||
)
|
||||
|
||||
@@ -47,8 +47,8 @@ async def get_sequence_books(
|
||||
id: int, allowed_langs: list[str] = Depends(get_allowed_langs)
|
||||
):
|
||||
return await paginate(
|
||||
BookDB.objects.select_related(["source"])
|
||||
.prefetch_related(["annotations", "authors", "translators"])
|
||||
BookDB.objects.prefetch_related(["source"])
|
||||
.select_related(["annotations", "authors", "translators"])
|
||||
.filter(sequences__id=id, lang__in=allowed_langs, is_deleted=False)
|
||||
.order_by("sequences__booksequences__position")
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user