import requests
from requests.packages.urllib3.exceptions import InsecureRequestWarning
requests.packages.urllib3.disable_warnings(InsecureRequestWarning)

def get_current_wp_user(site_slug, token):
    headers = {"Authorization": f"Bearer {token}"}
    try:
        url = f"https://{site_slug}.com.au/wp-json/flask-integration/v1/get-current-user"
        response = requests.get(url, headers=headers)
        if response.status_code == 200:
            return response.json()
        else:
            print(f"❌ Error al obtener usuario: {response.status_code}")
    except Exception as e:
        print(f"❌ Excepción al obtener usuario de WordPress: {e}")
    return None

def get_wp_users(site_key, token, allowed_roles=None):
    try:
        url = f"https://{site_key}.com.au/wp-json/flask-integration/v1/get-users"
        headers = {
            "Authorization": f"Bearer {token}",
            "Content-Type": "application/json"
        }
        response = requests.get(url, headers=headers, verify=False)
        if response.status_code == 200:
            users = response.json()

            # Aplicar filtrado si se pasa lista de roles
            if allowed_roles:
                users = [
                    user for user in users
                    if any(role in user.get("role", "").split(", ") for role in allowed_roles)
                ]
            return users
        else:
            print(f"❌ Error al obtener usuarios: {response.status_code} - {response.text}")
            return []
    except Exception as e:
        print(f"❌ Excepción al obtener usuarios: {e}")
        return []

