python-test/Module 5/services/users.py

31 lines
No EOL
790 B
Python

from typing import Sequence
from sqlalchemy.ext.asyncio import AsyncSession
from sqlalchemy import select
from models.users import User
async def get_users(db: AsyncSession) -> Sequence[User]:
users = await db.execute(select(User))
return users.scalars().all()
async def get_user_by_id(id: int, db: AsyncSession) -> User | None:
user = await db.execute(select(User).where(User.id == id))
return user.scalar_one_or_none()
async def create_user(user: User, db: AsyncSession) -> User:
db.add(user)
await db.commit()
await db.refresh(user)
return user
async def find_user_by_email(email: str, db: AsyncSession) -> User | None:
user = await db.execute(select(User).where(User.email == email))
return user.scalar_one_or_none()