31 lines
No EOL
790 B
Python
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() |