Expand source code
import logging
from typing import Optional, Dict, Any
from slack_sdk.web.internal_utils import (
_parse_web_class_objects,
get_user_agent,
)
from .webhook_response import WebhookResponse
def _build_body(original_body: Optional[Dict[str, Any]]) -> Optional[Dict[str, Any]]:
if original_body:
body = {k: v for k, v in original_body.items() if v is not None}
_parse_web_class_objects(body)
return body
return None
def _build_request_headers(
default_headers: Dict[str, str],
additional_headers: Optional[Dict[str, str]],
) -> Dict[str, str]:
if default_headers is None and additional_headers is None:
return {}
request_headers = {
"Content-Type": "application/json;charset=utf-8",
}
if default_headers is None or "User-Agent" not in default_headers:
request_headers["User-Agent"] = get_user_agent()
request_headers.update(default_headers)
if additional_headers:
request_headers.update(additional_headers)
return request_headers
def _debug_log_response(logger, resp: WebhookResponse) -> None:
if logger.level <= logging.DEBUG:
logger.debug(
"Received the following response - "
f"status: {resp.status_code}, "
f"headers: {(dict(resp.headers))}, "
f"body: {resp.body}"
)