diff --git a/backend/main.py b/backend/main.py index af974d8d896018c1e30edbebcb64c6924cb353f1..e08af748a9b62a389c0a086276c1fdb6e1398e9b 100644 --- a/backend/main.py +++ b/backend/main.py @@ -56,6 +56,11 @@ def get_item(item_uuid: str, db: Session = Depends(get_db)): return item +@app.get("/items", response_model=list[schemas.Item]) +def get_items(db: Session = Depends(get_db)): + return utils.get_stored_items(db) + + @app.get("/tag/{tag}", response_model=schemas.Item) def get_item_by_tag(tag: str, db: Session = Depends(get_db)): item = utils.get_item_by_tag(db, tag) diff --git a/backend/models.py b/backend/models.py index 84c1cdbed82fa8036e9b9053f3b814e941dd4b95..5a1d02397926e73b9b385462b68d6b01003d1d91 100644 --- a/backend/models.py +++ b/backend/models.py @@ -17,6 +17,7 @@ class Item(db_Base): uuid = sql_Column(sql_Uuid, primary_key=True, default=uuid4) amount = sql_Column(sql_Integer, default=1) + received_amount = sql_Column(sql_Integer, nullable=True, default=None) created_at = sql_Column(sql_DateTime(timezone=True), server_default=sql_now()) received_at = sql_Column(sql_DateTime(timezone=True), nullable=True, default=None) diff --git a/backend/utils.py b/backend/utils.py index 26068dd4be06af6b0b6f896dc7fcd24b6a4c23d3..58d0ebfa6de3268260267eb32559abb544e6b661 100644 --- a/backend/utils.py +++ b/backend/utils.py @@ -25,6 +25,16 @@ def get_storage(db: Session, storage_name: str): return db.get(models.Storage, storage_name) +def get_stored_items(db: Session): + return ( + db.query(models.Item) + .filter(models.Item.received_at != None) # noqa: E711 + .filter(models.Item.deployed_at == None) # noqa: E711 + .order_by(models.Item.storage, models.Item.addressee) + .all() + ) + + def get_storages(db: Session): return db.query(models.Storage).all()