Beispiel #1
0
async def get_todo(
        id: int, fields: List = [],
        db: Database = get_database()
):
    return await db.fetch_one(
        select(fields if fields else TodoItemInDB.columns)
            .where(TodoItemInDB.c.id == id)
            .limit(1))
Beispiel #2
0
async def create_todo(
    title: str, description: str, db: Database = get_database()) -> TodoItem:
    new_todo = dict(title=title,
                    description=description,
                    created_at=datetime.now(),
                    updated_at=datetime.now())
    id = await db.execute(TodoItemInDB.insert(new_todo))

    return TodoItem(**dict(id=id, **new_todo))
Beispiel #3
0
async def get_todo_list_api(fields: str = None):
    database = get_database()
    if fields:
        fields = [c.strip() for c in fields.split(",")]
        fields = [
            getattr(TodoItemInDB.c, col, None) for col in fields
            if getattr(TodoItemInDB.c, col, None) is not None
        ]

    return await crud.select_todo(fields, database)
Beispiel #4
0
async def update_todo(id, todo_update, db: Database = get_database()) -> None:
    # quick hack to update todos, never use this in a serious (production) application
    db_update = update(TodoItemInDB).values(todo_update).where(TodoItemInDB.c.id==id)
    await db.execute(db_update)
    return await get_todo(id)
Beispiel #5
0
async def delete_todo(id: int, db: Database = get_database()) -> None:
    await db.execute(TodoItemInDB.delete(TodoItemInDB.c.id == id))
    return None
Beispiel #6
0
async def is_todo_exist(id: int, db: Database = get_database()) -> bool:
    query = TodoItemInDB.count().where(TodoItemInDB.c.id == id)
    return True if await db.fetch_one(query) else False
Beispiel #7
0
async def select_todo(fields: List = [], db: Database = get_database()):
    return await db.fetch_all(select(fields if fields else TodoItemInDB.columns)
                              .select_from(TodoItemInDB)
                              .order_by(desc("created_at")))