import subprocess
import json
import os
from dotenv import load_dotenv

load_dotenv()

API_URL = os.getenv("API_URL")
API_KEY = os.getenv("API_KEY")

def run_bgp_curl_command():
    curl_command = [
        "curl", "-k", "--location", "--request", "POST", f"{API_URL}/show",
        "--form", "data={\"op\": \"show\", \"path\": [\"bgp\", \"vrf\", \"bgp\", \"summ\"]}",
        "--form", f"key={API_KEY}"
    ]
    response = subprocess.check_output(curl_command, text=True)
    return json.loads(response)

def run_arp_curl_command():
    curl_command = [
        "curl", "-k", "--location", "--request", "POST", f"{API_URL}/show",
        "--form", "data={\"op\": \"show\", \"path\": [\"arp\"]}",
        "--form", f"key={API_KEY}"
    ]
    response = subprocess.check_output(curl_command, text=True)
    return json.loads(response)

def run_neighbors_curl_command():
    curl_command = [
        "curl", "-k", "--location", "--request", "POST", f"{API_URL}/show",
        "--form", "data={\"op\": \"show\", \"path\": [\"ipv6\", \"neighbors\"]}",
        "--form", f"key={API_KEY}"
    ]
    response = subprocess.check_output(curl_command, text=True)
    return json.loads(response)

def run_interfaces_curl_command():
    curl_command = [
        "curl", "-k", "--location", "--request", "POST", f"{API_URL}/show",
        "--form", "data={\"op\": \"show\", \"path\": [\"interfaces\"]}",
        "--form", f"key={API_KEY}"
    ]
    response = subprocess.check_output(curl_command, text=True)
    return json.loads(response)
    
def run_bgp_route_curl_command(ip_version, bgprouteprefix):
    data_json = {
        "op": "show",
        "path": ["bgp", "vrf", "bgp", ip_version, bgprouteprefix]
    }
    curl_command = [
        "curl", "-k", "--location", "--request", "POST", f"{API_URL}/show",
        "--form", f"data={json.dumps(data_json)}",
        "--form", f"key={API_KEY}"
    ]
    response = subprocess.check_output(curl_command, text=True)
    return json.loads(response)