from __future__ import annotations

import base64
import json
import urllib.request
from pathlib import Path


env = {}
for raw in Path("/opt/charter-live/live_deploy_v2/.v2_stats_creds").read_text().splitlines():
    if raw.strip() and not raw.lstrip().startswith("#") and "=" in raw:
        key, value = raw.split("=", 1)
        env[key.strip()] = value.strip().strip('"').strip("'")
token = base64.b64encode(f"{env['V2_STATS_USER']}:{env['V2_STATS_PASS']}".encode()).decode()
request = urllib.request.Request("http://127.0.0.1:5511/json", headers={"Authorization": f"Basic {token}"})
with urllib.request.urlopen(request, timeout=60) as response:
    data = json.load(response)

needle = "699f792f-fe80-4b65-ab67-465fa8656a8b"
hits = []
def walk(value, path=""):
    if isinstance(value, dict):
        for key, item in value.items():
            walk(item, f"{path}/{key}")
    elif isinstance(value, list):
        for index, item in enumerate(value):
            if needle in json.dumps(item, default=str):
                hits.append(f"{path}[{index}]")
            walk(item, f"{path}[{index}]")
walk(data)
print(json.dumps({"http": 200, "order_id_hits": hits, "top_level_keys": sorted(data)}))
print(json.dumps({"celo_asset_details": data.get("asset_trade_details", {}).get("CELOUSDT"),
    "celo_positions": [r for r in data.get("positions", []) if r.get("symbol") == "CELOUSDT"],
    "celo_operational_exclusions": [r for r in data.get("operational_exclusions", []) if r.get("symbol") == "CELOUSDT"]}, default=str))
