Пример #1
0
async def add_user2(user2: User2Create,
                    database: Database = Depends(get_database)):
    id = user2.dict().get("dataset_id")
    query = datasets_table.select().\
        where (datasets_table.c.id == user2.dict().get("dataset_id"))
    results = await database.fetch_all(query)
    if user2.dict().get("dataset_id") not in [item[0] for item in results]:
        raise HTTPException(
            status_code=404,
            detail="Dataset Not Found",
            headers={"X-Error": "DataSet ID not found in DB"},
        )
        return results

    name = user2.dict().get("name")
    query = users2_table.select().\
        where (users2_table.c.name == user2.dict().get("name"))
    results = await database.fetch_all(query)
    if name in [item[1] for item in results]:
        raise HTTPException(
            status_code=400,
            detail="Duplicate Entry",
            headers={"X-Error": "The Name already exists in DB"},
        )
        return results
    else:
        insert_query = users2_table.insert().values(**user2.dict())
        last_record_id = await database.execute(insert_query)
        select_query = users2_table.select().where(
            text("id = {}".format(last_record_id)))
        results = await database.fetch_all(select_query)
        return results
Пример #2
0
async def add_dataset(dataset: DatasetCreate,
                      database: Database = Depends(get_database)):
    #checking if the name already exists in DB
    name = dataset.dict().get("name")
    query = datasets_table.select().\
        where (datasets_table.c.name == dataset.dict().get("name"))
    results = await database.fetch_all(query)
    #if the name exists throw error (Duplicates not allowed)
    if name in [item[1] for item in results]:
        raise HTTPException(
            status_code=400,
            detail="Duplicate Entry",
            headers={"X-Error": "The Name already exists in DB"},
        )
        return results
    else:
        insert_query = datasets_table.insert().values(**dataset.dict())
        last_record_id = await database.execute(insert_query)
        select_query = datasets_table.select().where(
            text("id = {}".format(last_record_id)))
        results = await database.fetch_all(select_query)
        return results
Пример #3
0
async def update_dataset(dataset: DatasetUpdate,
                         database: Database = Depends(get_database)):
    #if the name exists throw error (Duplicates not allowed)
    name = dataset.dict().get("name")
    query = datasets_table.select().\
        where (datasets_table.c.name == dataset.dict().get("name"))
    results = await database.fetch_all(query)
    if name in [item[1] for item in results]:
        raise HTTPException(
            status_code=400,
            detail="Duplicate Entry",
            headers={"X-Error": "The Name already exists in DB"},
        )
        return results
#Checking for ID. If ID not exists in DB then throw error
    query = datasets_table.select().\
        where (datasets_table.c.id == dataset.dict().get("id"))
    results = await database.fetch_all(query)
    if dataset.dict().get("id") not in [item[0] for item in results]:
        raise HTTPException(
            status_code=404,
            detail="Not Found",
            headers={"X-Error": "ID not found in DB"},
        )
        return results
    else:
        update_query = datasets_table.update().\
            where(datasets_table.c.id == dataset.dict().get("id")).\
            values(
            name = dataset.dict().get("name"),
            description = dataset.dict().get("description")
        )
        last_record_id = await database.execute(update_query)
        update_query = datasets_table.select().where(
            text("id = id".format(last_record_id)))
        results = await database.fetch_all(update_query)
        return results
Пример #4
0
async def delete_dataset(dataset: DatasetDelete,
                         database: Database = Depends(get_database)):

    query = datasets_table.select().\
        where (datasets_table.c.id == dataset.dict().get("id"))
    results = await database.fetch_all(query)
    if dataset.dict().get("id") not in [item[0] for item in results]:
        raise HTTPException(
            status_code=404,
            detail="Not Found",
            headers={"X-Error": "ID not found in DB"},
        )
        return results
    delete_query = datasets_table.delete().\
        where (datasets_table.c.id == dataset.dict().get("id"))
    results = await database.execute(delete_query)
    return results
Пример #5
0
async def get_datasets(dataset_id: int,
                       database: Database = Depends(get_database)):
    query = datasets_table.select().\
        where (datasets_table.c.id == dataset_id)
    results = await database.fetch_all(query)
    return results
Пример #6
0
async def read_datasets(database: Database = Depends(get_database)):
    query = datasets_table.select()
    results = await database.fetch_all(query)
    return results