File size: 817 Bytes
bfe88a9
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
from .database import database, users
from .models import UserInDB
from .schemas import UserCreate
from typing import Optional

async def get_user_by_email(email: str) -> Optional[UserInDB]:
    query = users.select().where(users.c.email == email)
    result = await database.fetch_one(query)
    return UserInDB(**result) if result else None

async def create_user(user_in: UserCreate, hashed_password: str) -> int:
    query = users.insert().values(
        email=user_in.email,
        hashed_password=hashed_password
    )
    last_record_id = await database.execute(query)
    return last_record_id

async def get_user_by_id(user_id: int) -> Optional[UserInDB]:
    query = users.select().where(users.c.id == user_id)
    result = await database.fetch_one(query)
    return UserInDB(**result) if result else None