import requests
import xml.etree.ElementTree as ET
from datetime import datetime
from dotenv import load_dotenv
import os

# .env betöltése megbízható helyről
ENV_PATH = os.path.abspath(os.path.join(os.path.dirname(__file__), ".env"))
load_dotenv(dotenv_path=ENV_PATH)

API_KEY = os.environ.get("API_KEY")
LOGIN_URL = os.environ.get("LOGIN_URL", "https://api.unas.eu/shop/login")
TOKEN_FILE = os.environ.get("TOKEN_FILE", "token.txt")

def login_to_unas(api_key):
    """Bejelentkezés az Unas API-ba."""
    request_xml = f"""<?xml version="1.0" encoding="UTF-8"?>
    <Params>
        <ApiKey>{api_key}</ApiKey>
        <WebshopInfo>true</WebshopInfo>
    </Params>
    """
    headers = {"Content-Type": "application/xml"}

    try:
        response = requests.post(LOGIN_URL, data=request_xml, headers=headers)
        response.raise_for_status()

        root = ET.fromstring(response.text)
        token = root.find("Token").text
        expiry = root.find("Expire").text
        expiry_datetime = datetime.strptime(expiry, "%Y.%m.%d %H:%M:%S")

        with open(TOKEN_FILE, "w") as file:
            file.write(f"{token}\n{expiry_datetime}")

        print(f"Token received: {token}")
        print(f"Token expires at: {expiry_datetime}")

    except requests.exceptions.RequestException as e:
        print(f"Hiba az API hívás során: {e}")
    except ET.ParseError:
        print("Hiba az XML feldolgozása során.")
    except Exception as e:
        print(f"Váratlan hiba történt: {e}")

if __name__ == "__main__":
    login_to_unas(API_KEY)
