Enforce that sats_received is in orders
This commit is contained in:
parent
d8f6548626
commit
bca2e7b143
1 changed files with 25 additions and 4 deletions
|
|
@ -39,7 +39,6 @@ def check_health():
|
||||||
|
|
||||||
|
|
||||||
def generate_um_report(start_date: str, end_date: str):
|
def generate_um_report(start_date: str, end_date: str):
|
||||||
|
|
||||||
start_date = datetime.datetime.strptime(start_date, "%Y-%m-%d").isoformat()
|
start_date = datetime.datetime.strptime(start_date, "%Y-%m-%d").isoformat()
|
||||||
end_date = datetime.datetime.strptime(end_date, "%Y-%m-%d").isoformat()
|
end_date = datetime.datetime.strptime(end_date, "%Y-%m-%d").isoformat()
|
||||||
|
|
||||||
|
|
@ -63,9 +62,18 @@ def generate_um_report(start_date: str, end_date: str):
|
||||||
relevant_orders = filter_orders_by_sku(
|
relevant_orders = filter_orders_by_sku(
|
||||||
orders_in_date_range, skus=skus_to_keep
|
orders_in_date_range, skus=skus_to_keep
|
||||||
)
|
)
|
||||||
|
|
||||||
logger.info(f"Kept {len(relevant_orders)} orders.")
|
logger.info(f"Kept {len(relevant_orders)} orders.")
|
||||||
|
|
||||||
|
logger.info("Checking if all orders have the sats_received entry filled in.")
|
||||||
|
orders_without_sats_received = find_orders_without_sats_received(relevant_orders)
|
||||||
|
|
||||||
|
if orders_without_sats_received:
|
||||||
|
logger.warning(
|
||||||
|
f"There are {len(orders_without_sats_received)} orders without a properly filled sats_received entry.")
|
||||||
|
logger.warning(f"See details below.")
|
||||||
|
logger.warning(orders_without_sats_received)
|
||||||
|
raise ValueError("Not all orders have sats_received. Can't compute sats owed without that.")
|
||||||
|
|
||||||
# Fetch orders:
|
# Fetch orders:
|
||||||
# - Between specific dates
|
# - Between specific dates
|
||||||
# - That contain the hardcoded products
|
# - That contain the hardcoded products
|
||||||
|
|
@ -84,8 +92,7 @@ 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]):
|
def filter_orders_by_sku(orders: List[Dict], skus: List[str]) -> List[Dict]:
|
||||||
|
|
||||||
filtered_orders = []
|
filtered_orders = []
|
||||||
|
|
||||||
for order in orders:
|
for order in orders:
|
||||||
|
|
@ -94,3 +101,17 @@ def filter_orders_by_sku(orders: List[Dict], skus: List[str]):
|
||||||
filtered_orders.append(order)
|
filtered_orders.append(order)
|
||||||
|
|
||||||
return filtered_orders
|
return filtered_orders
|
||||||
|
|
||||||
|
|
||||||
|
def find_orders_without_sats_received(orders: List[Dict]):
|
||||||
|
orders_without_sats_received = []
|
||||||
|
|
||||||
|
for order in orders:
|
||||||
|
meta_data_entries = {meta_data_entry["key"]: meta_data_entry["value"] for meta_data_entry in order["meta_data"]}
|
||||||
|
if "sats_received" not in meta_data_entries.keys():
|
||||||
|
orders_without_sats_received.append(order)
|
||||||
|
continue
|
||||||
|
if int(meta_data_entries["sats_received"]) < 0:
|
||||||
|
orders_without_sats_received.append(order)
|
||||||
|
|
||||||
|
return orders_without_sats_received
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue