add issue display
This commit is contained in:
@@ -2,10 +2,11 @@ from typing import List, AnyStr
|
|||||||
from fastapi import APIRouter, HTTPException, status
|
from fastapi import APIRouter, HTTPException, status
|
||||||
|
|
||||||
from src.apis.utils import SessionDep
|
from src.apis.utils import SessionDep
|
||||||
from src.db.repository.comic import get_artist_details, list_comics
|
from src.db.repository.comic import get_artist_details, list_comics, get_issue_details
|
||||||
from src.schema.comics.comic import ComicResponse, ComicDetailsResponse, get_comic_details, get_short_info
|
from src.schema.comics.comic import ComicResponse, ComicDetailsResponse, get_comic_details, get_short_info
|
||||||
from src.schema.comics.artist import ArtistCreation, ArtistDetailResponse, ArtistResponse
|
from src.schema.comics.artist import ArtistCreation, ArtistDetailResponse, ArtistResponse
|
||||||
from src.db.models.comic import Comic, Artist
|
from src.db.models.comic import Comic, Artist, Issue
|
||||||
|
from src.schema.comics.issue import IssueDetailsResponse
|
||||||
|
|
||||||
router = APIRouter(
|
router = APIRouter(
|
||||||
prefix="/comic",
|
prefix="/comic",
|
||||||
@@ -59,3 +60,11 @@ def add_artist(db: SessionDep, artist_creation: ArtistCreation) -> ArtistRespons
|
|||||||
response = ArtistResponse(id=artist.id, name=artist.name)
|
response = ArtistResponse(id=artist.id, name=artist.name)
|
||||||
return response
|
return response
|
||||||
|
|
||||||
|
@router.get("/issues", response_model=List[IssueDetailsResponse])
|
||||||
|
def get_issues(db: SessionDep) -> List[IssueDetailsResponse]:
|
||||||
|
results: List[IssueDetailsResponse] = []
|
||||||
|
issues = db.query(Issue).all()
|
||||||
|
for issue in issues:
|
||||||
|
results.append(get_issue_details(issue))
|
||||||
|
return results
|
||||||
|
|
||||||
|
|||||||
@@ -2,8 +2,9 @@ from typing import List, Type
|
|||||||
|
|
||||||
from sqlalchemy.orm import Session
|
from sqlalchemy.orm import Session
|
||||||
|
|
||||||
from src.db.models.comic import Artist, Comic
|
from src.db.models.comic import Artist, Comic, Issue
|
||||||
from src.schema.comics.artist import ArtistDetailResponse
|
from src.schema.comics.artist import ArtistDetailResponse
|
||||||
|
from src.schema.comics.issue import IssueDetailsResponse
|
||||||
|
|
||||||
|
|
||||||
def get_artist_details(artist: Artist) -> ArtistDetailResponse:
|
def get_artist_details(artist: Artist) -> ArtistDetailResponse:
|
||||||
@@ -25,3 +26,15 @@ def get_artist_details(artist: Artist) -> ArtistDetailResponse:
|
|||||||
def list_comics(db: Session) -> List[Type[Comic]]:
|
def list_comics(db: Session) -> List[Type[Comic]]:
|
||||||
comics = db.query(Comic).all()
|
comics = db.query(Comic).all()
|
||||||
return comics
|
return comics
|
||||||
|
|
||||||
|
|
||||||
|
def get_issue_details(issue: Issue) -> IssueDetailsResponse:
|
||||||
|
response = IssueDetailsResponse(
|
||||||
|
id=issue.id,
|
||||||
|
issue_number=issue.issue_number,
|
||||||
|
in_stock=issue.in_stock,
|
||||||
|
is_read=issue.is_read,
|
||||||
|
comic_id=issue.comic_id,
|
||||||
|
volume_id=issue.volume_id
|
||||||
|
)
|
||||||
|
return response
|
||||||
|
|||||||
Reference in New Issue
Block a user