mirror of
https://github.com/StepanovPlaton/torrent_backend.git
synced 2026-04-03 20:30:38 +04:00
44 lines
1.5 KiB
Python
44 lines
1.5 KiB
Python
from sqlalchemy.ext.asyncio import AsyncSession
|
|
from fastapi import APIRouter, Depends
|
|
|
|
import database as db
|
|
from file_handler import *
|
|
from routes.auth import get_user
|
|
|
|
games_router = APIRouter(prefix="/games", tags=["Games"])
|
|
|
|
|
|
@games_router.get("", response_model=list[db.Game])
|
|
async def get_games(db_session: AsyncSession = Depends(db.get_session)):
|
|
return await db.get_games(db_session)
|
|
|
|
|
|
@games_router.post("", response_model=db.Game)
|
|
async def add_game(game: db.GameCreate,
|
|
user: db.User = Depends(get_user),
|
|
db_session: AsyncSession = Depends(db.get_session)):
|
|
return await db.add_game(db_session, game, user.id)
|
|
|
|
|
|
@games_router.get("/cards", response_model=list[db.GameCard])
|
|
async def get_games_cards(db_session: AsyncSession = Depends(db.get_session)):
|
|
return await db.get_games(db_session)
|
|
|
|
|
|
@games_router.get("/{game_id}", response_model=db.Game)
|
|
async def get_game(game_id: int, db_session: AsyncSession = Depends(db.get_session)):
|
|
return await db.get_game(db_session, game_id)
|
|
|
|
|
|
@games_router.put("/{game_id}", response_model=db.Game)
|
|
async def edit_game(game_id: int,
|
|
game: db.GameCreate,
|
|
db_session: AsyncSession = Depends(db.get_session)):
|
|
return await db.edit_game(db_session, game_id, game)
|
|
|
|
|
|
@games_router.delete("/{game_id}", response_model=db.Game)
|
|
async def delete_game(game_id: int,
|
|
db_session: AsyncSession = Depends(db.get_session)):
|
|
return await db.delete_game(db_session, game_id)
|