import os
import json

import requests
import urllib3
from dotenv import load_dotenv

load_dotenv()

HOST = os.getenv("CPANEL_HOST")
USER = os.getenv("CPANEL_USER")
TOKEN = os.getenv("CPANEL_TOKEN")

APP_ROOT = "/home/grpia/apps"
PROJECT_NAME = "deploy-teste"

headers = {
    "Authorization": f"cpanel {USER}:{TOKEN}"
}

urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)

url = f"{HOST}/json-api/cpanel"

params = {
    "cpanel_jsonapi_user": USER,
    "cpanel_jsonapi_apiversion": "2",
    "cpanel_jsonapi_module": "Fileman",
    "cpanel_jsonapi_func": "mkdir",
    "path": APP_ROOT,
    "name": PROJECT_NAME,
    "permissions": "0755",
}

response = requests.get(
    url,
    headers=headers,
    params=params,
    verify=False,
    timeout=30,
)

print("HTTP:", response.status_code)

try:
    data = response.json()
except ValueError:
    print(response.text)
    raise SystemExit()

print(json.dumps(data, indent=2, ensure_ascii=False))

result = data.get("cpanelresult", {})
event = result.get("event", {})

if response.status_code == 200 and event.get("result") == 1:
    print()
    print("PASTA CRIADA!")
    print(f"{APP_ROOT}/{PROJECT_NAME}")
else:
    print()
    print("NÃO CRIOU A PASTA.")