diff --git a/fastapi_book_server/app/serializers/book.py b/fastapi_book_server/app/serializers/book.py index ca42a4f..50fd3d3 100644 --- a/fastapi_book_server/app/serializers/book.py +++ b/fastapi_book_server/app/serializers/book.py @@ -6,6 +6,11 @@ from app.serializers.author import Author from app.serializers.orjson_config import ORJSONConfig +class BookSource(BaseModel): + id: int + name: str + + class Book(BaseModel): id: int title: str @@ -19,6 +24,10 @@ class Book(BaseModel): pass +class BookWithSource(Book): + source: BookSource + + class CreateBook(BaseModel): source: int remote_id: int diff --git a/fastapi_book_server/app/views/book.py b/fastapi_book_server/app/views/book.py index 2a5676d..633af03 100644 --- a/fastapi_book_server/app/views/book.py +++ b/fastapi_book_server/app/views/book.py @@ -7,7 +7,7 @@ from fastapi_pagination.ext.ormar import paginate 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, CreateBook, UpdateBook, CreateRemoteBook +from app.serializers.book import Book, BookWithSource, CreateBook, UpdateBook, CreateRemoteBook from app.services.book import BookTGRMSearchService, BookCreator from app.depends import check_token @@ -19,7 +19,7 @@ book_router = APIRouter( ) -@book_router.get("/", response_model=CustomPage[Book], dependencies=[Depends(Params)]) +@book_router.get("/", response_model=CustomPage[BookWithSource], dependencies=[Depends(Params)]) async def get_books(): return await paginate( BookDB.objects.select_related(["source", "authors"])