This commit is contained in:
@@ -34,7 +34,7 @@ from src.apis.version1.tysc import (
|
|||||||
from src.core.security import get_current_user_from_token
|
from src.core.security import get_current_user_from_token
|
||||||
|
|
||||||
from src.apis.version1.user import assignment, permission, profile, token
|
from src.apis.version1.user import assignment, permission, profile, token
|
||||||
from src.apis.version1.bookshelf import article
|
from src.apis.version1.bookshelf import article, publisher, book, author, articleauthor, bookauthor
|
||||||
|
|
||||||
api_router = APIRouter(prefix="/api")
|
api_router = APIRouter(prefix="/api")
|
||||||
api_router.include_router(
|
api_router.include_router(
|
||||||
@@ -169,6 +169,36 @@ api_router.include_router(
|
|||||||
tags=["bookshelf"],
|
tags=["bookshelf"],
|
||||||
dependencies=[Depends(get_current_user_from_token)],
|
dependencies=[Depends(get_current_user_from_token)],
|
||||||
)
|
)
|
||||||
|
api_router.include_router(
|
||||||
|
publisher.router,
|
||||||
|
prefix="/bookshelf",
|
||||||
|
tags=["bookshelf"],
|
||||||
|
dependencies=[Depends(get_current_user_from_token)],
|
||||||
|
)
|
||||||
|
api_router.include_router(
|
||||||
|
book.router,
|
||||||
|
prefix="/bookshelf",
|
||||||
|
tags=["bookshelf"],
|
||||||
|
dependencies=[Depends(get_current_user_from_token)],
|
||||||
|
)
|
||||||
|
api_router.include_router(
|
||||||
|
author.router,
|
||||||
|
prefix="/bookshelf",
|
||||||
|
tags=["bookshelf"],
|
||||||
|
dependencies=[Depends(get_current_user_from_token)],
|
||||||
|
)
|
||||||
|
api_router.include_router(
|
||||||
|
articleauthor.router,
|
||||||
|
prefix="/bookshelf",
|
||||||
|
tags=["bookshelf"],
|
||||||
|
dependencies=[Depends(get_current_user_from_token)],
|
||||||
|
)
|
||||||
|
api_router.include_router(
|
||||||
|
bookauthor.router,
|
||||||
|
prefix="/bookshelf",
|
||||||
|
tags=["bookshelf"],
|
||||||
|
dependencies=[Depends(get_current_user_from_token)],
|
||||||
|
)
|
||||||
api_router.include_router(
|
api_router.include_router(
|
||||||
profile.router,
|
profile.router,
|
||||||
prefix="/user",
|
prefix="/user",
|
||||||
|
|||||||
@@ -0,0 +1,19 @@
|
|||||||
|
from typing import List
|
||||||
|
|
||||||
|
from fastapi import APIRouter
|
||||||
|
|
||||||
|
from src.db.models.bookshelf import ArticleAuthor
|
||||||
|
from src.db.session import SessionDep
|
||||||
|
from src.schema.bookshelf.articleauthor import ArticleAuthorResponse, to_response
|
||||||
|
|
||||||
|
router = APIRouter()
|
||||||
|
|
||||||
|
|
||||||
|
@router.get("/articleauthors", response_model=List[ArticleAuthorResponse])
|
||||||
|
def get_all_artists(db: SessionDep) -> List[ArticleAuthorResponse]:
|
||||||
|
results: List[ArticleAuthorResponse] = []
|
||||||
|
articleauthors = db.query(ArticleAuthor).all()
|
||||||
|
for articleauthor in articleauthors:
|
||||||
|
response = to_response(articleauthor)
|
||||||
|
results.append(response)
|
||||||
|
return results
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
from typing import List
|
||||||
|
|
||||||
|
from fastapi import APIRouter
|
||||||
|
|
||||||
|
from src.db.models.bookshelf import Author
|
||||||
|
from src.db.session import SessionDep
|
||||||
|
from src.schema.bookshelf.author import AuthorResponse, to_response
|
||||||
|
|
||||||
|
router = APIRouter()
|
||||||
|
|
||||||
|
|
||||||
|
@router.get("/authors", response_model=List[AuthorResponse])
|
||||||
|
def get_all_artists(db: SessionDep) -> List[AuthorResponse]:
|
||||||
|
results: List[AuthorResponse] = []
|
||||||
|
authors = db.query(Author).all()
|
||||||
|
for author in authors:
|
||||||
|
response = to_response(author)
|
||||||
|
results.append(response)
|
||||||
|
return results
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
from typing import List
|
||||||
|
|
||||||
|
from fastapi import APIRouter
|
||||||
|
|
||||||
|
from src.db.models.bookshelf import Book
|
||||||
|
from src.db.session import SessionDep
|
||||||
|
from src.schema.bookshelf.book import BookResponse, to_response
|
||||||
|
|
||||||
|
router = APIRouter()
|
||||||
|
|
||||||
|
|
||||||
|
@router.get("/books", response_model=List[BookResponse])
|
||||||
|
def get_all_artists(db: SessionDep) -> List[BookResponse]:
|
||||||
|
results: List[BookResponse] = []
|
||||||
|
books = db.query(Book).all()
|
||||||
|
for book in books:
|
||||||
|
response = to_response(book)
|
||||||
|
results.append(response)
|
||||||
|
return results
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
from typing import List
|
||||||
|
|
||||||
|
from fastapi import APIRouter
|
||||||
|
|
||||||
|
from src.db.models.bookshelf import BookAuthor
|
||||||
|
from src.db.session import SessionDep
|
||||||
|
from src.schema.bookshelf.bookauthor import BookAuthorResponse, to_response
|
||||||
|
|
||||||
|
router = APIRouter()
|
||||||
|
|
||||||
|
|
||||||
|
@router.get("/bookauthors", response_model=List[BookAuthorResponse])
|
||||||
|
def get_all_artists(db: SessionDep) -> List[BookAuthorResponse]:
|
||||||
|
results: List[BookAuthorResponse] = []
|
||||||
|
bookauthors = db.query(BookAuthor).all()
|
||||||
|
for bookauthor in bookauthors:
|
||||||
|
response = to_response(bookauthor)
|
||||||
|
results.append(response)
|
||||||
|
return results
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
from typing import List
|
||||||
|
|
||||||
|
from fastapi import APIRouter
|
||||||
|
|
||||||
|
from src.db.models.bookshelf import BookshelfPublisher
|
||||||
|
from src.db.session import SessionDep
|
||||||
|
from src.schema.bookshelf.publisher import PublisherResponse, to_response
|
||||||
|
|
||||||
|
router = APIRouter()
|
||||||
|
|
||||||
|
|
||||||
|
@router.get("/publishers", response_model=List[PublisherResponse])
|
||||||
|
def get_all_artists(db: SessionDep) -> List[PublisherResponse]:
|
||||||
|
results: List[PublisherResponse] = []
|
||||||
|
publishers = db.query(BookshelfPublisher).all()
|
||||||
|
for publisher in publishers:
|
||||||
|
response = to_response(publisher)
|
||||||
|
results.append(response)
|
||||||
|
return results
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
from datetime import datetime
|
||||||
|
|
||||||
|
from pydantic import BaseModel
|
||||||
|
|
||||||
|
from src.db.models.bookshelf import ArticleAuthor
|
||||||
|
|
||||||
|
|
||||||
|
class ArticleAuthorResponse(BaseModel):
|
||||||
|
id: str
|
||||||
|
created_date: datetime
|
||||||
|
last_modified_date: datetime
|
||||||
|
version: int
|
||||||
|
article_id: str
|
||||||
|
author_id: str
|
||||||
|
|
||||||
|
def to_response(articleauthor: ArticleAuthor) -> ArticleAuthorResponse:
|
||||||
|
response: ArticleAuthorResponse = ArticleAuthorResponse(
|
||||||
|
id=articleauthor.id,
|
||||||
|
created_date=articleauthor.created_date,
|
||||||
|
last_modified_date=articleauthor.last_modified_date,
|
||||||
|
version=articleauthor.version,
|
||||||
|
article_id=articleauthor.article_id,
|
||||||
|
author_id=articleauthor.author_id
|
||||||
|
)
|
||||||
|
return response
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
from datetime import datetime
|
||||||
|
|
||||||
|
from pydantic import BaseModel
|
||||||
|
|
||||||
|
from src.db.models.bookshelf import Author
|
||||||
|
|
||||||
|
|
||||||
|
class AuthorResponse(BaseModel):
|
||||||
|
id: str
|
||||||
|
created_date: datetime
|
||||||
|
last_modified_date: datetime
|
||||||
|
version: int
|
||||||
|
first_name: str
|
||||||
|
last_name: str
|
||||||
|
|
||||||
|
def to_response(author: Author) -> AuthorResponse:
|
||||||
|
response: AuthorResponse = AuthorResponse(
|
||||||
|
id=author.id,
|
||||||
|
created_date=author.created_date,
|
||||||
|
last_modified_date=author.last_modified_date,
|
||||||
|
version=author.version,
|
||||||
|
first_name=author.first_name,
|
||||||
|
last_name=author.last_name
|
||||||
|
)
|
||||||
|
return response
|
||||||
@@ -0,0 +1,29 @@
|
|||||||
|
from datetime import datetime
|
||||||
|
|
||||||
|
from pydantic import BaseModel
|
||||||
|
|
||||||
|
from src.db.models.bookshelf import Book
|
||||||
|
|
||||||
|
|
||||||
|
class BookResponse(BaseModel):
|
||||||
|
id: str
|
||||||
|
created_date: datetime
|
||||||
|
last_modified_date: datetime
|
||||||
|
version: int
|
||||||
|
isbn: str
|
||||||
|
title: str
|
||||||
|
year: int
|
||||||
|
publisher_id: str
|
||||||
|
|
||||||
|
def to_response(book: Book) -> BookResponse:
|
||||||
|
response: BookResponse = BookResponse(
|
||||||
|
id=book.id,
|
||||||
|
created_date=book.created_date,
|
||||||
|
last_modified_date=book.last_modified_date,
|
||||||
|
version=book.version,
|
||||||
|
isbn=book.isbn,
|
||||||
|
title=book.title,
|
||||||
|
year=book.year,
|
||||||
|
publisher_id=book.publisher_id
|
||||||
|
)
|
||||||
|
return response
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
from datetime import datetime
|
||||||
|
|
||||||
|
from pydantic import BaseModel
|
||||||
|
|
||||||
|
from src.db.models.bookshelf import BookAuthor
|
||||||
|
|
||||||
|
|
||||||
|
class BookAuthorResponse(BaseModel):
|
||||||
|
id: str
|
||||||
|
created_date: datetime
|
||||||
|
last_modified_date: datetime
|
||||||
|
version: int
|
||||||
|
author_id: str
|
||||||
|
book_id: str
|
||||||
|
|
||||||
|
def to_response(bookauthor: BookAuthor) -> BookAuthorResponse:
|
||||||
|
response: BookAuthorResponse = BookAuthorResponse(
|
||||||
|
id=bookauthor.id,
|
||||||
|
created_date=bookauthor.created_date,
|
||||||
|
last_modified_date=bookauthor.last_modified_date,
|
||||||
|
version=bookauthor.version,
|
||||||
|
author_id=bookauthor.author_id,
|
||||||
|
book_id=bookauthor.book_id
|
||||||
|
)
|
||||||
|
return response
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
from datetime import datetime
|
||||||
|
|
||||||
|
from pydantic import BaseModel
|
||||||
|
|
||||||
|
from src.db.models.bookshelf import BookshelfPublisher
|
||||||
|
|
||||||
|
|
||||||
|
class PublisherResponse(BaseModel):
|
||||||
|
id: str
|
||||||
|
created_date: datetime
|
||||||
|
last_modified_date: datetime
|
||||||
|
version: int
|
||||||
|
name: str
|
||||||
|
|
||||||
|
def to_response(publisher: BookshelfPublisher) -> PublisherResponse:
|
||||||
|
response: PublisherResponse = PublisherResponse(
|
||||||
|
id=publisher.id,
|
||||||
|
created_date=publisher.created_date,
|
||||||
|
last_modified_date=publisher.last_modified_date,
|
||||||
|
version=publisher.version,
|
||||||
|
name=publisher.name
|
||||||
|
)
|
||||||
|
return response
|
||||||
Reference in New Issue
Block a user