diff --git a/backend/backlog_app/api/crud.py b/backend/backlog_app/api/crud.py index 8097dd7..ceb5a45 100644 --- a/backend/backlog_app/api/crud.py +++ b/backend/backlog_app/api/crud.py @@ -20,7 +20,7 @@ async def create_movie( await db.commit() await db.refresh(movie) - logger.info("Movie has been created.") + logger.info("Movie <%s> has been created.", movie.id) return MovieRead( id=movie.id, @@ -153,7 +153,7 @@ async def delete_movie( db: AsyncSession, movie_id: int, user: User, -) -> Movie | None: +) -> None: result = await db.execute(select(Movie).where(Movie.id == movie_id)) movie = result.scalars().first() if not movie: @@ -164,9 +164,7 @@ async def delete_movie( await db.delete(movie) await db.commit() - logger.info("Movie has been deleted.") - - return movie + logger.info("Movie <%s> has been deleted.", movie_id) def check_movie_ownership(movie: Movie, user: User) -> None: diff --git a/backend/backlog_app/api/view/movie_view.py b/backend/backlog_app/api/view/movie_view.py index f2a8d9e..8a8cc2d 100644 --- a/backend/backlog_app/api/view/movie_view.py +++ b/backend/backlog_app/api/view/movie_view.py @@ -1,6 +1,6 @@ from typing import Annotated, List -from fastapi import APIRouter, Depends +from fastapi import APIRouter, Depends, status from sqlalchemy.ext.asyncio import AsyncSession from backlog_app.api import crud @@ -14,7 +14,7 @@ router = APIRouter(prefix="/movies", tags=["Movies"]) -@router.post("/", response_model=MovieRead) +@router.post("/", response_model=MovieRead, status_code=status.HTTP_201_CREATED) async def add_movie( movie_create: MovieCreate, db: Annotated[AsyncSession, Depends(get_async_session)], @@ -66,7 +66,10 @@ async def partial_update_movie( return await crud.partial_update_movie(db, movie_id, movie_update) -@router.delete("/{movie_id}", response_model=MovieRead) +@router.delete( + "/{movie_id}", + status_code=status.HTTP_204_NO_CONTENT, +) async def delete_movie( movie_id: int, db: Annotated[AsyncSession, Depends(get_async_session)], diff --git a/backend/backlog_app/schemas/movie.py b/backend/backlog_app/schemas/movie.py index 22f8674..84559f7 100644 --- a/backend/backlog_app/schemas/movie.py +++ b/backend/backlog_app/schemas/movie.py @@ -4,6 +4,8 @@ from annotated_types import Len from pydantic import BaseModel, Field +from .user import UserRead + class MovieBase(BaseModel): title: Annotated[str, Len(min_length=3, max_length=255)] @@ -14,6 +16,8 @@ class MovieBase(BaseModel): kp_id: int | None = None imdb_id: int | None = None + model_config = {"from_attributes": True} + class MovieCreate(MovieBase): description: Annotated[str, Len(min_length=20, max_length=1000)] | None = None @@ -37,5 +41,3 @@ class MovieRead(MovieBase): watched: bool rating: float | None created_at: datetime - - model_config = {"from_attributes": True}