async def _get_with_auth(
        self, client: httpx.AsyncClient, url: str, params: Optional[Dict] = None
    ) -> Dict:
        """Make an authenticated GET request to Microsoft Graph API with retry logic."""
        headers = {"Authorization": f"Bearer {self.access_token}"}
        try:
            resp = await client.get(url, headers=headers, params=params, timeout=30.0)
            logger.info(f"Request URL: {url}")
            resp.raise_for_status()
            return resp.json()
        except httpx.ConnectTimeout:
            logger.error(f"Connection timeout accessing Microsoft Graph API: {url}")
            raise
        except httpx.ReadTimeout:
            logger.error(f"Read timeout accessing Microsoft Graph API: {url}")
            raise
        except httpx.HTTPStatusError as e:
            logger.error(
                f"HTTP status error {e.response.status_code} from Microsoft Graph API: {url}"
            )
            # Log the response body for debugging
            try:
                error_body = e.response.json()
                logger.error(f"Error response body: {error_body}")
            except Exception:  # Catch specific exception instead of bare except
                logger.error(f"Error response text: {e.response.text}")
            raise
        except Exception as e:
            logger.error(f"Unexpected error accessing Microsoft Graph API: {url}, {str(e)}")
            raise
Make an authenticated GET request to Microsoft Graph API with retry logic.
backend/airweave/platform/sources/onedrive.py