diff --git a/camisatoshi_wordpress_reports/controllers.py b/camisatoshi_wordpress_reports/controllers.py index 7bc8a47..ec76bfc 100644 --- a/camisatoshi_wordpress_reports/controllers.py +++ b/camisatoshi_wordpress_reports/controllers.py @@ -96,12 +96,12 @@ def generate_um_report(start_date: str, end_date: str): # - 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 = [] for order in orders: - for item in order["line_items"]: - if item["sku"] in skus: + for sku in skus: + if order.contains_sku(sku): filtered_orders.append(order) return filtered_orders diff --git a/camisatoshi_wordpress_reports/order.py b/camisatoshi_wordpress_reports/order.py index 18add68..6b9ba49 100644 --- a/camisatoshi_wordpress_reports/order.py +++ b/camisatoshi_wordpress_reports/order.py @@ -9,6 +9,12 @@ class Order: def __getitem__(self, 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 def from_api_response(cls, raw_data) -> "Order": return Order(raw_data)