import requests import json import argparse # --- Configuration --- BASE_URL = "https://dev-api.oneskyit.com" AGENT_API_KEY = "IDF68Em5X4HTZlswRNgepQ" # Default Contexts for Testing CONTEXTS = { "account_1": "_XY7DXtc9MY", "account_5": "xFP7AhU8Zlc", "account_22": "3Iid1aIRY5j", "account_23": "nqOzejLCDXM", "event_1358": "nmBfuGFeR0k" } def run_lookup(code, description, account_id=None, for_type=None, for_id=None, limit=1, version="v3"): """ Performs a Data Store lookup and prints standardized results. """ print(f"[{version.upper()}] {description} (Limit: {limit})") headers = { "X-Aether-API-Key": AGENT_API_KEY, "Content-Type": "application/json" } if account_id: headers["X-Account-ID"] = account_id else: headers["X-No-Account-ID"] = "bypass" if version == "v3": url = f"{BASE_URL}/v3/data_store/code/{code}" params = {"for_type": for_type, "for_id": for_id, "limit": limit} response = requests.get(url, headers=headers, params=params) else: # Legacy Endpoint if for_type and for_id: url = f"{BASE_URL}/data_store/code/{code}/{for_type}/{for_id}" else: url = f"{BASE_URL}/data_store/code/{code}" response = requests.get(url, headers=headers, params={"limit": limit}) print(f" URL: {response.url}") print(f" Status: {response.status_code}") if response.status_code == 200: data = response.json().get('data') if data: if isinstance(data, list): print(f" Result: SUCCESS (List of {len(data)})") for i, item in enumerate(data): print(f" [{i+1}] ID: {item.get('id') or item.get('data_store_id')}, Name: {item.get('name')[:40]}...") else: print(f" Result: SUCCESS (Single Object)") print(f" ID: {data.get('id') or data.get('data_store_id')}") print(f" Name: {data.get('name')}") else: print(f" Result: NULL (No record found or validation failed)") else: print(f" Result: ERROR - {response.text[:200]}") print("-" * 60) if __name__ == "__main__": parser = argparse.ArgumentParser(description="Aether Data Store V3 Lookup Tester") parser.add_argument("--code", default="event_launcher_main_info", help="The Data Store code to test") args = parser.parse_args() print(f"=== Aether Data Store Unified Tester ===") print(f"Target: {BASE_URL}") print(f"Code: {args.code}\n") # 1. Standard Single Result (Default) run_lookup(args.code, "Scenario: Single Result (Default)", account_id=CONTEXTS["account_1"]) # 2. Multi-Result Override (Limit 5) run_lookup(args.code, "Scenario: Multi-Result Override", account_id=CONTEXTS["account_1"], limit=5) # 3. Object Specific Context (Event 1358) run_lookup(args.code, "Scenario: Event 1358 (under Account 1)", account_id=CONTEXTS["account_1"], for_type="event", for_id=CONTEXTS["event_1358"]) print("\nTests Complete.")