diff --git a/backend/backlog_app/api/crud.py b/backend/backlog_app/api/crud.py index fed21a3..cd18b8a 100644 --- a/backend/backlog_app/api/crud.py +++ b/backend/backlog_app/api/crud.py @@ -2,7 +2,6 @@ from uuid import UUID from fastapi import HTTPException -from sqlalchemy import or_ from sqlalchemy.ext.asyncio import AsyncSession from sqlalchemy.future import select from sqlalchemy.orm import selectinload @@ -90,13 +89,18 @@ async def update_movie( async def partial_update_movie( - db: AsyncSession, movie_id: int, movie_in: MovieUpdate + db: AsyncSession, + movie_id: int, + movie_in: MovieUpdate, + user: User, ) -> Movie | None: result = await db.execute(select(Movie).where(Movie.id == movie_id)) movie = result.scalars().first() if not movie: raise HTTPException(status_code=404) + check_movie_ownership(movie, user) + for field, value in movie_in.model_dump(exclude_unset=True).items(): setattr(movie, field, value) diff --git a/backend/backlog_app/api/view/movie_view.py b/backend/backlog_app/api/view/movie_view.py index c103f87..cd44149 100644 --- a/backend/backlog_app/api/view/movie_view.py +++ b/backend/backlog_app/api/view/movie_view.py @@ -1,4 +1,4 @@ -from typing import Annotated, List +from typing import Annotated from fastapi import APIRouter, Depends, status from sqlalchemy.ext.asyncio import AsyncSession @@ -63,7 +63,7 @@ async def partial_update_movie( db: Annotated[AsyncSession, Depends(get_async_session)], user: Annotated[User, Depends(current_active_user)], ): - return await crud.partial_update_movie(db, movie_id, movie_update) + return await crud.partial_update_movie(db, movie_id, movie_update, user) @router.delete( diff --git a/frontend/README.md b/frontend/README.md index 1511959..72d4cff 100644 --- a/frontend/README.md +++ b/frontend/README.md @@ -1,5 +1,112 @@ -# Vue 3 + Vite +# Backlog Frontend -This template should help get you started developing with Vue 3 in Vite. The template uses Vue 3 ` -
+ + ++ +
+ + + + + + + +
+ +