Code refactoring. Add support genres and actors to routes

This commit is contained in:
2024-06-26 23:13:47 +04:00
parent fc3bcc343d
commit b9e22fcc4c
28 changed files with 545 additions and 250 deletions

View File

@@ -1,26 +1,45 @@
from sqlalchemy.ext.asyncio import AsyncSession
from sqlalchemy.future import select
from database.database import Database, EntityCRUD
from .. import models as mdl
from .. import schemas as sch
from ..database import add_transaction
async def get_user(db: AsyncSession, username: str):
return (await db.execute(select(mdl.User).where(mdl.User.name == username))).scalar()
class UsersCRUD(EntityCRUD[mdl.User]):
@staticmethod
async def get(db: AsyncSession, username: str):
return (await db.execute(select(mdl.User).where(mdl.User.name == username))).scalar()
@staticmethod
async def get_all(db: AsyncSession):
return await Database.get_all(db, mdl.User)
async def add_user(db: AsyncSession,
user_data: sch.UserCreate, hash_of_password: str):
user_data_db = \
{k: v for k, v in user_data.model_dump().items()
if k != "password"}
user = mdl.User(**user_data_db,
hash_of_password=hash_of_password)
return await add_transaction(db, user)
@staticmethod
async def add(db: AsyncSession,
info: sch.UserCreate,
hash_of_password: str):
user_data_db = \
{k: v for k, v in info.model_dump().items()
if k != "password"}
user = mdl.User(**user_data_db,
hash_of_password=hash_of_password)
return await Database.add(db, user)
@staticmethod
async def change(db: AsyncSession,
id: int,
info: sch.UserCreate):
return await Database.change(db, mdl.User, id, info)
async def check_email(db: AsyncSession, email: str):
users = (await db.execute(select(mdl.User)
.where(mdl.User.email == email))).scalars().all()
return True if len(users) == 0 else False
@staticmethod
async def delete_user(db: AsyncSession,
id: int):
return await Database.delete(db, mdl.User, id)
@staticmethod
async def check_email(db: AsyncSession, email: str):
users = (await db.execute(select(mdl.User)
.where(mdl.User.email == email))).scalars().all()
return True if len(users) == 0 else False