Exemplo n.º 1
0
async def describe_table(service_id: str, table_name: str, sync: bool = False, ttl: int = 3600,
                         db: databases.Database = Depends(models.get_db)):
    service = await services.get_service(service_id, db)
    if service.driver:
        driver = await drivers.get_driver(service.driver)
        return drivers.service_stack(driver, service, "get", f"/table/{table_name}", sync=sync, ttl=ttl)
    raise errors.ServiceException(service.id, errors.NO_DRV_ERROR, "Service has no driver assigned")
Exemplo n.º 2
0
async def post_table(service_id: str, table: schemas.Table, sync: bool = False, ttl: int = 3600,
                     db: databases.Database = Depends(models.get_db)):
    service = await services.get_service(service_id, db)
    if service.driver:
        driver = await drivers.get_driver(service.driver)
        return drivers.service_stack(driver, service, "post", "/table", data=table.dict(), sync=sync, ttl=ttl)
    raise errors.ServiceException(service.id, errors.NO_DRV_ERROR, "Service has no driver assigned")
Exemplo n.º 3
0
async def list_records(service_id: str,
                       table_name: str,
                       sync: bool = False,
                       ttl: int = 3600,
                       dql_options: str = "",
                       db: databases.Database = Depends(models.get_db)):
    service = await services.get_service(service_id, db)
    if service.driver:
        driver = await drivers.get_driver(service.driver)
        path = f"/table/{table_name}/record"
        if dql_options:
            try:
                json.loads(dql_options)
            except json.decoder.JSONDecodeError:
                raise errors.ServiceException(dql_options, errors.DATA_ERROR,
                                              "Value is not JSON decodable")
        return drivers.service_stack(driver,
                                     service,
                                     "get",
                                     path,
                                     data={"dql": dql_options},
                                     sync=sync,
                                     ttl=ttl)
    raise errors.ServiceException(service.id, errors.NO_DRV_ERROR,
                                  "Service has no driver assigned")
Exemplo n.º 4
0
async def delete_records(service_id: str, table_name: str, dml_options: schemas.RecordDMLOptions,
                       sync: bool = False, ttl: int = 3600, db: databases.Database = Depends(models.get_db)):
    service = await services.get_service(service_id, db)
    if service.driver:
        driver = await drivers.get_driver(service.driver)
        path = f"/table/{table_name}/record"
        return drivers.service_stack(driver, service, "delete", path, data=dml_options.dict(), sync=sync, ttl=ttl)
    raise errors.ServiceException(service.id, errors.NO_DRV_ERROR, "Service has no driver assigned")
Exemplo n.º 5
0
async def ping_service(service_id: str,
                       db: databases.Database = Depends(models.get_db)):
    service = await get_service(service_id, db)
    if service.driver:
        driver = await drivers.get_driver(service.driver)
        return drivers.service_stack(driver,
                                     service,
                                     "get",
                                     "/ping",
                                     sync=True)
    raise errors.ServiceException(service.id, errors.NO_DRV_ERROR,
                                  "Service has no driver assigned")
Exemplo n.º 6
0
async def predict(service_id: str,
                  image_file: UploadFile = File(...),
                  sync: bool = False,
                  ttl: int = 3600,
                  db: databases.Database = Depends(models.get_db)):
    service = await services.get_service(service_id, db)
    if service.driver:
        driver = await drivers.get_driver(service.driver)
        return drivers.service_stack(driver,
                                     service,
                                     "post",
                                     "/predict",
                                     data=image_file,
                                     sync=sync,
                                     ttl=ttl)
    raise errors.ServiceException(service.id, errors.NO_DRV_ERROR,
                                  "Service has no driver assigned")