"""
Utilities for HTTP requests using requests library
"""

import json
from typing import Dict, Any, List
from mcp.types import TextContent

from ..config import session, logger


async def fetch_with_requests(url: str, timeout: int, headers: Dict[str, Any], debug: bool = False, session_info: Dict[str, Any] = None) -> List[TextContent]:
    """Fetch using requests (fast path)."""
    response = session.get(url, timeout=timeout, headers=headers)
    response.raise_for_status()

    cookies_info = {cookie.name: cookie.value for cookie in session.cookies}

    result = {
        "method": "requests",
        "url": url,
        "status_code": response.status_code,
        "content_type": response.headers.get("content-type", ""),
        "html": response.text,
        "size": len(response.text),
        "cookies_count": len(cookies_info),
        "authenticated": bool(session.auth or cookies_info),
        "response_headers": dict(response.headers) if debug else {}
    }

    # Add session information if available
    if session_info:
        result["session_used"] = session_info

    return [TextContent(type="text", text=json.dumps(result, indent=2, ensure_ascii=False))]
