mirror of
https://github.com/StepanovPlaton/torrent_backend.git
synced 2026-04-03 20:30:38 +04:00
Code refactoring. Add support genres and actors to routes
This commit is contained in:
@@ -1,41 +1,41 @@
|
||||
from sqlalchemy.ext.asyncio import AsyncSession
|
||||
from fastapi import APIRouter, Depends, HTTPException, status
|
||||
|
||||
import database as db
|
||||
from database import *
|
||||
from file_handler import *
|
||||
from routes.auth import get_user
|
||||
|
||||
movies_router = APIRouter(prefix="/movies", tags=["Movies"])
|
||||
|
||||
|
||||
@movies_router.get("", response_model=list[db.Movie])
|
||||
async def get_movies(db_session: AsyncSession = Depends(db.get_session)):
|
||||
return await db.get_movies(db_session)
|
||||
@movies_router.get("/{movie_id}", response_model=Movie)
|
||||
async def get_movie(movie_id: int, db_session: AsyncSession = Depends(Database.get_session)):
|
||||
return await MoviesCRUD.get(db_session, movie_id)
|
||||
|
||||
|
||||
@movies_router.post("", response_model=db.Movie)
|
||||
async def add_movie(movie: db.MovieCreate,
|
||||
user: db.User = Depends(get_user),
|
||||
db_session: AsyncSession = Depends(db.get_session)):
|
||||
return await db.add_movie(db_session, movie, user.id)
|
||||
@movies_router.get("/cards", response_model=list[MovieCard])
|
||||
async def get_movies_cards(db_session: AsyncSession = Depends(Database.get_session)):
|
||||
return await MoviesCRUD.get_all(db_session)
|
||||
|
||||
|
||||
@movies_router.get("/cards", response_model=list[db.MovieCard])
|
||||
async def get_movies_cards(db_session: AsyncSession = Depends(db.get_session)):
|
||||
return await db.get_movies(db_session)
|
||||
@movies_router.get("", response_model=list[Movie])
|
||||
async def get_movies(db_session: AsyncSession = Depends(Database.get_session)):
|
||||
return await MoviesCRUD.get_all(db_session)
|
||||
|
||||
|
||||
@movies_router.get("/{movie_id}", response_model=db.Movie)
|
||||
async def get_movie(movie_id: int, db_session: AsyncSession = Depends(db.get_session)):
|
||||
return await db.get_movie(db_session, movie_id)
|
||||
@movies_router.post("", response_model=Movie)
|
||||
async def add_movie(movie: MovieCreate,
|
||||
user: User = Depends(get_user),
|
||||
db_session: AsyncSession = Depends(Database.get_session)):
|
||||
return await MoviesCRUD.add(db_session, movie, user.id)
|
||||
|
||||
|
||||
@movies_router.put("/{movie_id}", response_model=db.Movie)
|
||||
@movies_router.put("/{movie_id}", response_model=Movie)
|
||||
async def edit_movie(movie_id: int,
|
||||
movie: db.MovieCreate,
|
||||
user: db.User = Depends(get_user),
|
||||
db_session: AsyncSession = Depends(db.get_session)):
|
||||
movie_db = await db.get_movie(db_session, movie_id)
|
||||
movie: MovieCreate,
|
||||
user: User = Depends(get_user),
|
||||
db_session: AsyncSession = Depends(Database.get_session)):
|
||||
movie_db = await MoviesCRUD.get(db_session, movie_id)
|
||||
if (movie_db is None):
|
||||
raise HTTPException(status.HTTP_404_NOT_FOUND,
|
||||
detail=f"Movie with id={movie_id} not found")
|
||||
@@ -43,14 +43,14 @@ async def edit_movie(movie_id: int,
|
||||
raise HTTPException(status.HTTP_401_UNAUTHORIZED,
|
||||
detail=f"Movie can only be edited "
|
||||
"by the owner (creator)")
|
||||
return await db.edit_movie(db_session, movie_id, movie)
|
||||
return await MoviesCRUD.change(db_session, movie_id, movie)
|
||||
|
||||
|
||||
@movies_router.delete("/{movie_id}", response_model=db.Movie)
|
||||
@movies_router.delete("/{movie_id}", response_model=Movie)
|
||||
async def delete_movie(movie_id: int,
|
||||
user: db.User = Depends(get_user),
|
||||
db_session: AsyncSession = Depends(db.get_session)):
|
||||
movie_db = await db.get_movie(db_session, movie_id)
|
||||
user: User = Depends(get_user),
|
||||
db_session: AsyncSession = Depends(Database.get_session)):
|
||||
movie_db = await MoviesCRUD.get(db_session, movie_id)
|
||||
if (movie_db is None):
|
||||
raise HTTPException(status.HTTP_404_NOT_FOUND,
|
||||
detail=f"Movie with id={movie_id} not found")
|
||||
@@ -58,4 +58,4 @@ async def delete_movie(movie_id: int,
|
||||
raise HTTPException(status.HTTP_401_UNAUTHORIZED,
|
||||
detail=f"Movie can only be deleted "
|
||||
"by the owner (creator)")
|
||||
return await db.delete_movie(db_session, movie_id)
|
||||
return await MoviesCRUD.delete(db_session, movie_id)
|
||||
|
||||
Reference in New Issue
Block a user