Small fixes

This commit is contained in:
2024-05-10 16:44:46 +04:00
parent a45c2dfee2
commit fd5b19e6a9
12 changed files with 94 additions and 61 deletions

View File

@@ -1,4 +1,7 @@
from .crud import *
from .schemas import *
from .database import get_session, drop_all, create_all, recreate_all
from .database import get_session as get_session, \
drop_all as drop_all, \
create_all as create_all, \
recreate_all as recreate_all
from .crud import *

View File

@@ -1 +1 @@
from .games import *
from .games import *

View File

@@ -5,14 +5,17 @@ from .. import models as mdl
from .. import schemas as sch
from ..database import add_transaction
async def add_game(db: AsyncSession,
game_info: sch.GameCreate,
async def add_game(db: AsyncSession,
game_info: sch.GameCreate,
user_id: int):
game = mdl.Game(**game_info.model_dump(), owner_id=user_id)
return await add_transaction(db, game)
async def get_games(db: AsyncSession):
return (await db.execute(select(mdl.Game))).scalars().all()
async def get_game(db: AsyncSession, game_id: int):
return await db.get(mdl.Game, game_id)
return await db.get(mdl.Game, game_id)

View File

@@ -1,7 +1,6 @@
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.asyncio import AsyncSession
from sqlalchemy.ext.asyncio import create_async_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.ext.asyncio import AsyncSession, create_async_engine
DATABASE_URL = "sqlite+aiosqlite:///./dev_database.db"
# DATABASE_URL = "postgresql://user:password@postgresserver/db"
@@ -9,27 +8,31 @@ DATABASE_URL = "sqlite+aiosqlite:///./dev_database.db"
engine = create_async_engine(
DATABASE_URL, connect_args={"check_same_thread": False}, echo=True
)
async_session = sessionmaker(
engine, class_=AsyncSession, expire_on_commit=False)
async_session = sessionmaker( # type: ignore
engine, class_=AsyncSession, expire_on_commit=False) # type: ignore
Base = declarative_base()
async def get_session() -> AsyncSession: # type: ignore
# Dependency
async with async_session() as session: # type: ignore
yield session
async def drop_all():
async with engine.begin() as conn:
await conn.run_sync(Base.metadata.drop_all)
async def create_all():
async with engine.begin() as conn:
await conn.run_sync(Base.metadata.create_all)
async def recreate_all():
await drop_all()
await create_all()
async def add_transaction[T](db: AsyncSession, entity: T) -> T:
try:
db.add(entity)
@@ -38,4 +41,4 @@ async def add_transaction[T](db: AsyncSession, entity: T) -> T:
return entity
except Exception as ex:
await db.rollback()
raise ex
raise ex