Default to dummy data for tracking package

This commit is contained in:
Laine
2025-04-17 10:09:58 -04:00
parent 77942b19a1
commit 4410f30642
6 changed files with 208 additions and 15 deletions

View File

@@ -18,10 +18,6 @@ def get_order(args: dict) -> dict:
for order in order_list:
if order["id"] == order_id:
return order
# if order["status"] == "shipped":
# return{"status": order["status"], "tracking_id": order["tracking_id"]}
# else:
# return{"status": order["status"]}
return_msg = "Order " + order_id + " not found."
return {"error": return_msg}

View File

@@ -2,12 +2,46 @@ import http
import os
import json
def track_package_faked(args: dict) -> dict:
from pathlib import Path
#Send back dummy data in the correct format - to use the real API, 1) change this to be track_package_fake and 2) change the below track_package_real to be track_package
def track_package(args: dict) -> dict:
tracking_id = args.get("tracking_id")
file_path = Path(__file__).resolve().parent.parent / "data" / "dummy_tracking_data.json"
if not file_path.exists():
return {"error": "Data file not found."}
with open(file_path, "r") as file:
data = json.load(file)
package_list = data["packages"]
for package in package_list:
if package["TrackingNumber"] == tracking_id:
scheduled_delivery_date = package["ScheduledDeliveryDate"]
carrier = package["Carrier"]
status_summary = package["StatusSummary"]
tracking_details = package.get("TrackingDetails", [])
last_tracking_update = ""
if tracking_details and tracking_details is not None and tracking_details[0] is not None:
last_tracking_update = tracking_details[0]["EventDateTimeInDateTimeFormat"]
tracking_link = ""
if carrier == "USPS":
tracking_link = f"https://tools.usps.com/go/TrackConfirmAction?qtc_tLabels1={tracking_id}"
elif carrier == "UPS":
tracking_link = f"https://www.ups.com/track?track=yes&trackNums={tracking_id}"
return {
"scheduled_delivery_date": scheduled_delivery_date,
"carrier": carrier,
"status_summary": status_summary,
"tracking_link": tracking_link,
"last_tracking_update": last_tracking_update
}
#return_msg = "Account not found with email address " + email + " or account ID: " + account_id
return {"tracking_info": "delivered, probably"}
return_msg = "Package not found with tracking info " + tracking_id
return {"error": return_msg}
'''Format of response:
{
@@ -61,7 +95,7 @@ def track_package_faked(args: dict) -> dict:
]
}
'''
def track_package(args: dict) -> dict:
def track_package_real(args: dict) -> dict:
tracking_id = args.get("tracking_id")