diff --git a/backend/main.py b/backend/main.py index 9b258941fc73c5050ae985c92b294ccf134f5293..562a1df1b003c4b892b69ea3995d22233d34c4c8 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 fa74e5e24ab4de9d3e6de7ad5c98c6cec1b12f2c..80fb90ec971720f6f296b15c0036b6dd8815ea42 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()