mirror of
https://github.com/flibusta-apps/book_library_server.git
synced 2025-12-06 15:15:36 +01:00
Add filter for get_books
This commit is contained in:
10
fastapi_book_server/app/filters/book.py
Normal file
10
fastapi_book_server/app/filters/book.py
Normal file
@@ -0,0 +1,10 @@
|
||||
from typing import Optional
|
||||
|
||||
|
||||
def get_book_filter(is_deleted: Optional[bool] = None) -> dict:
|
||||
result = {}
|
||||
|
||||
if is_deleted is not None:
|
||||
result['is_deleted'] = is_deleted
|
||||
|
||||
return result
|
||||
@@ -9,6 +9,7 @@ from app.utils.pagination import CustomPage
|
||||
from app.models import Book as BookDB, Author as AuthorDB, AuthorAnnotation as AuthorAnnotationDB
|
||||
from app.serializers.book import Book, RemoteBook, CreateBook, UpdateBook, CreateRemoteBook
|
||||
from app.services.book import BookTGRMSearchService, BookCreator
|
||||
from app.filters.book import get_book_filter
|
||||
from app.depends import check_token
|
||||
|
||||
|
||||
@@ -20,9 +21,9 @@ book_router = APIRouter(
|
||||
|
||||
|
||||
@book_router.get("/", response_model=CustomPage[RemoteBook], dependencies=[Depends(Params)])
|
||||
async def get_books():
|
||||
async def get_books(book_filter: dict = Depends(get_book_filter)):
|
||||
return await paginate(
|
||||
BookDB.objects.select_related(["source", "authors"])
|
||||
BookDB.objects.select_related(["source", "authors"]).filter(**book_filter)
|
||||
)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user