From e87854bba01aea5ab9b926d12b5f558c58dca83a Mon Sep 17 00:00:00 2001 From: Pablo Martin Date: Thu, 3 Aug 2023 16:33:53 +0200 Subject: [PATCH] Constants to stop hardcoding strings everywhere --- camisatoshi_wordpress_reports/constants.py | 11 +++++++++++ camisatoshi_wordpress_reports/order.py | 16 +++++++++++----- 2 files changed, 22 insertions(+), 5 deletions(-) create mode 100644 camisatoshi_wordpress_reports/constants.py diff --git a/camisatoshi_wordpress_reports/constants.py b/camisatoshi_wordpress_reports/constants.py new file mode 100644 index 0000000..e622efe --- /dev/null +++ b/camisatoshi_wordpress_reports/constants.py @@ -0,0 +1,11 @@ +from types import SimpleNamespace + +order_keys = SimpleNamespace() +order_keys.meta_data = "meta_data" +order_keys.line_items = "line_items" + +order_keys.line_item_keys = SimpleNamespace() +order_keys.line_item_keys.sku = "sku" + +custom_meta_data_keys = SimpleNamespace() +custom_meta_data_keys.is_settled_with_um = "is_settled_with_um" diff --git a/camisatoshi_wordpress_reports/order.py b/camisatoshi_wordpress_reports/order.py index e7783ef..da29565 100644 --- a/camisatoshi_wordpress_reports/order.py +++ b/camisatoshi_wordpress_reports/order.py @@ -1,8 +1,9 @@ from typing import Dict +from camisatoshi_wordpress_reports.constants import order_keys, custom_meta_data_keys + class Order: - def __init__(self, raw_data: Dict): self.raw_data = raw_data @@ -11,11 +12,14 @@ class Order: @property def meta_data_entries(self): - return {meta_data_entry["key"]: meta_data_entry["value"] for meta_data_entry in self.raw_data["meta_data"]} + return { + meta_data_entry["key"]: meta_data_entry["value"] + for meta_data_entry in self.raw_data[order_keys.meta_data] + } def contains_sku(self, sku: str) -> bool: - for item in self["line_items"]: - if item["sku"] == sku: + for item in self[order_keys.line_items]: + if item[order_keys.line_item_keys.sku] == sku: return True return False @@ -25,7 +29,9 @@ class Order: return False def is_settled_with_um(self): - is_settled = self.meta_data_entries.get("is_settled_with_um", None) + is_settled = self.meta_data_entries.get( + custom_meta_data_keys.is_settled_with_um, None + ) return bool(is_settled)