mirror of
https://github.com/StepanovPlaton/torrent_backend.git
synced 2026-04-04 04:40:40 +04:00
Code refactoring. Add support genres and actors to routes
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user