From 224fe34a9b042d50e7273b565bf29db8fb3da1c9 Mon Sep 17 00:00:00 2001 From: hanfi <ccc@spahan.ch> Date: Sun, 13 Aug 2023 12:54:06 +0200 Subject: [PATCH] query live items in storage --- backend/main.py | 14 ++++++++++++-- backend/utils.py | 14 ++++++++++---- 2 files changed, 22 insertions(+), 6 deletions(-) diff --git a/backend/main.py b/backend/main.py index 9b25894..562a1df 100644 --- a/backend/main.py +++ b/backend/main.py @@ -50,11 +50,11 @@ def get_db(): def check_token(token: str, item_uuid: str): try: auth_data = oauth2_tokener.loads(token, max_age=settings.token_lifetime * 60) - print(auth_data) if auth_data == "all" or auth_data == item_uuid: return # success except BadSignature: - pass + print("failed to load access token") + print(item_uuid) raise HTTPException( status_code=status.HTTP_401_UNAUTHORIZED, @@ -127,6 +127,16 @@ def get_item_by_tag( return item +@app.get("/storage/{storage_name}", response_model=list[schemas.Item]) +def get_storage( + storage_name: str, + token: str = Depends(oauth2_scheme), + db: Session = Depends(get_db), +): + check_token(token, None) + return utils.get_items_for_storage(db, storage_name) + + @app.get("/storages", response_model=list[schemas.Storage]) def list_storages(token: str = Depends(oauth2_scheme), db: Session = Depends(get_db)): check_token(token, None) diff --git a/backend/utils.py b/backend/utils.py index fa74e5e..80fb90e 100644 --- a/backend/utils.py +++ b/backend/utils.py @@ -20,10 +20,6 @@ def get_item_by_tag(db: Session, item_tag: str): return db.query(models.Item).filter(models.Item.tag == item_tag).first() -def get_items_for_storage(db: Session, storage_name: str): - return db.query(models.Storage).get(models.Storage.name == storage_name).items - - def get_storage(db: Session, storage_name: str): return db.get(models.Storage, storage_name) @@ -38,6 +34,16 @@ def get_stored_items(db: Session): ) +def get_items_for_storage(db: Session, storage_name: str): + return ( + db.query(models.Item) + .filter(models.Item.storage == storage_name) + .filter(models.Item.received_at != None) # noqa: E711 + .filter(models.Item.deployed_at == None) # noqa: E711 + .all() + ) + + def get_storages(db: Session): return db.query(models.Storage).all() -- GitLab