Module slack_bolt.context.respond.async_respond
Expand source code
from typing import Optional, Union, Sequence
from slack_sdk.models.attachments import Attachment
from slack_sdk.models.blocks import Block
from slack_sdk.webhook.async_client import AsyncWebhookClient, WebhookResponse
from slack_bolt.context.respond.internals import _build_message
class AsyncRespond:
    response_url: Optional[str]
    def __init__(self, *, response_url: Optional[str]):
        self.response_url: Optional[str] = response_url
    async def __call__(
        self,
        text: Union[str, dict] = "",
        blocks: Optional[Sequence[Union[dict, Block]]] = None,
        attachments: Optional[Sequence[Union[dict, Attachment]]] = None,
        response_type: Optional[str] = None,
        replace_original: Optional[bool] = None,
        delete_original: Optional[bool] = None,
    ) -> WebhookResponse:
        if self.response_url is not None:
            client = AsyncWebhookClient(self.response_url)
            text_or_whole_response: Union[str, dict] = text
            if isinstance(text_or_whole_response, str):
                message = _build_message(
                    text=text,
                    blocks=blocks,
                    attachments=attachments,
                    response_type=response_type,
                    replace_original=replace_original,
                    delete_original=delete_original,
                )
                return await client.send_dict(message)
            elif isinstance(text_or_whole_response, dict):
                whole_response: dict = text_or_whole_response
                message = _build_message(**whole_response)
                return await client.send_dict(message)
            else:
                raise ValueError(f"The arg is unexpected type ({type(text)})")
        else:
            raise ValueError("respond is unsupported here as there is no response_url")
Classes
class AsyncRespond (*, response_url: Optional[str])- 
Expand source code
class AsyncRespond: response_url: Optional[str] def __init__(self, *, response_url: Optional[str]): self.response_url: Optional[str] = response_url async def __call__( self, text: Union[str, dict] = "", blocks: Optional[Sequence[Union[dict, Block]]] = None, attachments: Optional[Sequence[Union[dict, Attachment]]] = None, response_type: Optional[str] = None, replace_original: Optional[bool] = None, delete_original: Optional[bool] = None, ) -> WebhookResponse: if self.response_url is not None: client = AsyncWebhookClient(self.response_url) text_or_whole_response: Union[str, dict] = text if isinstance(text_or_whole_response, str): message = _build_message( text=text, blocks=blocks, attachments=attachments, response_type=response_type, replace_original=replace_original, delete_original=delete_original, ) return await client.send_dict(message) elif isinstance(text_or_whole_response, dict): whole_response: dict = text_or_whole_response message = _build_message(**whole_response) return await client.send_dict(message) else: raise ValueError(f"The arg is unexpected type ({type(text)})") else: raise ValueError("respond is unsupported here as there is no response_url")Class variables
var response_url : Optional[str]