From 87b9547964497120fa437151bd939dfa94aba27e Mon Sep 17 00:00:00 2001
From: hanfi <ccc@spahan.ch>
Date: Wed, 20 Sep 2023 20:26:14 +0200
Subject: [PATCH] improved error handling

---
 backend/utils.py | 54 ++++++++++++++++++++++++++----------------------
 1 file changed, 29 insertions(+), 25 deletions(-)

diff --git a/backend/utils.py b/backend/utils.py
index 0a2c86b..90bbd9a 100644
--- a/backend/utils.py
+++ b/backend/utils.py
@@ -41,10 +41,11 @@ def get_item_by_uuid(db: Session, item_uuid: UUID4):
 
 def get_storage_by_name(db: Session, storage_name: str):
     storage = db.get(models.Storage, storage_name)
-    storage.items = [
-        item for item in storage.items if item.deployed_at == None  # noqa: E711
-    ]
-    return db.get(models.Storage, storage_name)
+    if storage:
+        storage.items = [
+            item for item in storage.items if item.deployed_at == None  # noqa: E711
+        ]
+    return storage
 
 
 def get_storages(db: Session):
@@ -58,22 +59,24 @@ def get_storages(db: Session):
 
 def get_delivery_by_uuid(db: Session, delivery_uuid: UUID4):
     delivery = db.get(models.Delivery, delivery_uuid)
-    delivery.amount = len(delivery.items)
-    delivery.items = [
-        item for item in delivery.items if item.deployed_at == None  # noqa: E711
-    ]
-    return db.get(models.Delivery, delivery_uuid)
+    if delivery:
+        delivery.amount = len(delivery.items)
+        delivery.items = [
+            item for item in delivery.items if item.deployed_at == None  # noqa: E711
+        ]
+    return delivery
 
 
 def get_delivery_by_tag(db: Session, delivery_tag: str):
     delivery = (
         db.query(models.Delivery).filter(models.Delivery.tag == delivery_tag).first()
     )
-    delivery.amount = len(delivery.items)
-    delivery.items = [
-        item for item in delivery.items if item.deployed_at == None  # noqa: E711
-    ]
-    return db.query(models.Delivery).filter(models.Delivery.tag == delivery_tag).first()
+    if delivery:
+        delivery.amount = len(delivery.items)
+        delivery.items = [
+            item for item in delivery.items if item.deployed_at == None  # noqa: E711
+        ]
+    return delivery
 
 
 def prepare_delivery(db: Session, verification: str):
@@ -91,17 +94,18 @@ def update_delivery_data(
     db: Session, delivery_uuid: UUID4, update_data: schemas.DeliveryUpdate
 ):
     delivery = db.get(models.Delivery, delivery_uuid)
-    if update_data.addressee:
-        delivery.addressee = escape(update_data.addressee)
-    if update_data.team:
-        delivery.team = escape(update_data.team)
-    db.commit()
-    db.refresh(delivery)
-    delivery.amount = len(delivery.items)
-    delivery.items = [
-        item for item in delivery.items if item.deployed_at == None  # noqa: E711
-    ]
-    return delivery
+    if delivery:
+        if update_data.addressee:
+            delivery.addressee = escape(update_data.addressee)
+        if update_data.team:
+            delivery.team = escape(update_data.team)
+        db.commit()
+        db.refresh(delivery)
+        delivery.amount = len(delivery.items)
+        delivery.items = [
+            item for item in delivery.items if item.deployed_at == None  # noqa: E711
+        ]
+        return delivery
 
 
 def add_item_for_delivery_at_storage(
-- 
GitLab