コード例 #1
0
async def get_items(query: str, offset: int):
    async with async_session() as session:
        if query:
            results = await session.execute(
                select(Items).filter(
                    func.lower(
                        Items.name).like(f'%{query.lower()}%')).order_by(
                            Items.name).offset(offset).limit(20))
        else:
            results = await session.execute(
                select(Items).order_by(Items.name).offset(offset).limit(20))
        return results.scalars()
コード例 #2
0
async def update_item(data):
    old = data['old']
    for item in ['name', 'description', 'price', 'pic']:
        item_ = data[item]
        if item_ is None:
            continue

        async with async_session() as session:
            stmt = update(Items).where(Items.item_id == old.item_id).values({item: item_}). \
                returning(to_(Items)[item])

            await session.execute(stmt)
            await session.commit()
    return old
コード例 #3
0
async def add_referral_user(referrer: Users, user_id: int, user_fullname: str):
    async with async_session() as session:
        stmt = update(Users).where(Users.code == referrer.code).\
            values(balance=referrer.balance + 10).returning(Users.code)

        user_invited = Users(user_id=user_id,
                             name=user_fullname,
                             balance=0,
                             code=encode(user_id)[2:-1],
                             invited=referrer.user_id)
        await session.add(user_invited)
        await session.execute(stmt)
        await session.commit()
    return user_invited
コード例 #4
0
async def delete_item(data, call):
    item_id = data['item_id']
    async with async_session() as session:
        results = await session.execute(
            select(Items).where(Items.item_id == int(item_id)))
        item = results.scalars().first()

        if item is None:
            await call.message.edit_text('Товар не найден! :/')
            return False

        await session.delete(item)
        await session.commit()
        return item_id
コード例 #5
0
async def get_item(item_id: int):
    async with async_session() as session:
        results = await session.execute(
            select(Items).where(Items.item_id == item_id))
        return results.scalars().first()
コード例 #6
0
async def add_item(item: Items):
    async with async_session() as session:
        async with session.begin():
            session.add(item)
コード例 #7
0
async def update_user(text: dict, user_id: int):
    async with async_session() as session:
        stmt = update(Users).where(
            Users.user_id == user_id).values(text).returning(Users.balance)
        await session.execute(stmt)
        await session.commit()
コード例 #8
0
async def add_user(user: Users):
    async with async_session() as session:
        async with session.begin():
            session.add(user)
コード例 #9
0
async def get_user(user_id: int):
    async with async_session() as session:
        result = await session.execute(
            select(Users).where(Users.user_id == user_id))
        return result.scalars().first()
コード例 #10
0
async def get_user_on_code(code: str):
    async with async_session() as session:
        result = await session.execute(select(Users).where(Users.code == code))
        return result.scalars().first()