mirror of
https://github.com/evroon/bracket.git
synced 2026-01-26 06:58:47 -05:00
21 lines
722 B
Python
21 lines
722 B
Python
from contextlib import asynccontextmanager
|
|
from typing import AsyncIterator
|
|
|
|
from ladderz.database import database
|
|
from ladderz.models.db.user import User, UserInDB
|
|
from ladderz.schema import users
|
|
from ladderz.utils.db import fetch_one_parsed
|
|
|
|
|
|
@asynccontextmanager
|
|
async def inserted_user(user: User) -> AsyncIterator[UserInDB]:
|
|
last_record_id = await database.execute(query=users.insert(), values=user.dict())
|
|
user_inserted = await fetch_one_parsed(
|
|
database, UserInDB, users.select().where(users.c.id == last_record_id)
|
|
)
|
|
assert user_inserted is not None
|
|
try:
|
|
yield user_inserted
|
|
finally:
|
|
await database.execute(query=users.delete().where(users.c.id == last_record_id))
|