Sku checking in Order class

This commit is contained in:
Pablo Martin 2023-08-03 14:58:26 +02:00
parent 7c1dba2f1b
commit 2e7db68ab4
2 changed files with 9 additions and 3 deletions

View file

@ -96,12 +96,12 @@ def generate_um_report(start_date: str, end_date: str):
# - Add metadata entry: is_settled_with_um: 1 # - Add metadata entry: is_settled_with_um: 1
def filter_orders_by_sku(orders: List[Dict], skus: List[str]) -> List[Dict]: def filter_orders_by_sku(orders: List[Order], skus: List[str]) -> List[Order]:
filtered_orders = [] filtered_orders = []
for order in orders: for order in orders:
for item in order["line_items"]: for sku in skus:
if item["sku"] in skus: if order.contains_sku(sku):
filtered_orders.append(order) filtered_orders.append(order)
return filtered_orders return filtered_orders

View file

@ -9,6 +9,12 @@ class Order:
def __getitem__(self, item): def __getitem__(self, item):
return self.raw_data[item] return self.raw_data[item]
def contains_sku(self, sku: str) -> bool:
for item in self["line_items"]:
if item["sku"] == sku:
return True
return False
@classmethod @classmethod
def from_api_response(cls, raw_data) -> "Order": def from_api_response(cls, raw_data) -> "Order":
return Order(raw_data) return Order(raw_data)