Module slack_bolt.request.payload_utils
Functions
def is_action(body: Dict[str, Any]) ‑> bool
-
Expand source code
def is_action(body: Dict[str, Any]) -> bool: return ( is_attachment_action(body) or is_block_actions(body) or is_dialog_submission(body) or is_dialog_cancellation(body) or is_workflow_step_edit(body) )
def is_assistant_event(body: Dict[str, Any]) ‑> bool
-
Expand source code
def is_assistant_event(body: Dict[str, Any]) -> bool: return is_event(body) and ( is_assistant_thread_started_event(body) or is_assistant_thread_context_changed_event(body) or is_user_message_event_in_assistant_thread(body) or is_bot_message_event_in_assistant_thread(body) )
def is_assistant_thread_context_changed_event(body: Dict[str, Any]) ‑> bool
-
Expand source code
def is_assistant_thread_context_changed_event(body: Dict[str, Any]) -> bool: if is_event(body): return body["event"]["type"] == "assistant_thread_context_changed" return False
def is_assistant_thread_started_event(body: Dict[str, Any]) ‑> bool
-
Expand source code
def is_assistant_thread_started_event(body: Dict[str, Any]) -> bool: if is_event(body): return body["event"]["type"] == "assistant_thread_started" return False
def is_attachment_action(body: Dict[str, Any]) ‑> bool
-
Expand source code
def is_attachment_action(body: Dict[str, Any]) -> bool: return body is not None and _is_expected_type(body, "interactive_message") and "callback_id" in body
def is_block_actions(body: Dict[str, Any]) ‑> bool
-
Expand source code
def is_block_actions(body: Dict[str, Any]) -> bool: return body is not None and _is_expected_type(body, "block_actions") and "actions" in body
def is_block_suggestion(body: Dict[str, Any]) ‑> bool
-
Expand source code
def is_block_suggestion(body: Dict[str, Any]) -> bool: return body is not None and _is_expected_type(body, "block_suggestion") and "action_id" in body
def is_bot_message_event_in_assistant_thread(body: Dict[str, Any]) ‑> bool
-
Expand source code
def is_bot_message_event_in_assistant_thread(body: Dict[str, Any]) -> bool: if is_event(body): return ( is_message_event_in_assistant_thread(body) and body["event"].get("subtype") is None and body["event"].get("thread_ts") is not None and body["event"].get("bot_id") is not None ) return False
def is_dialog_cancellation(body: Dict[str, Any]) ‑> bool
-
Expand source code
def is_dialog_cancellation(body: Dict[str, Any]) -> bool: return body is not None and _is_expected_type(body, "dialog_cancellation") and "callback_id" in body
def is_dialog_submission(body: Dict[str, Any]) ‑> bool
-
Expand source code
def is_dialog_submission(body: Dict[str, Any]) -> bool: return body is not None and _is_expected_type(body, "dialog_submission") and "callback_id" in body
def is_dialog_suggestion(body: Dict[str, Any]) ‑> bool
-
Expand source code
def is_dialog_suggestion(body: Dict[str, Any]) -> bool: return body is not None and _is_expected_type(body, "dialog_suggestion") and "callback_id" in body
def is_event(body: Dict[str, Any]) ‑> bool
-
Expand source code
def is_event(body: Dict[str, Any]) -> bool: return body is not None and _is_expected_type(body, "event_callback") and "event" in body and "type" in body["event"]
def is_function(body: Dict[str, Any]) ‑> bool
-
Expand source code
def is_function(body: Dict[str, Any]) -> bool: return is_event(body) and "function_executed" == body["event"]["type"] and "function_execution_id" in body["event"]
def is_global_shortcut(body: Dict[str, Any]) ‑> bool
-
Expand source code
def is_global_shortcut(body: Dict[str, Any]) -> bool: return body is not None and _is_expected_type(body, "shortcut") and "callback_id" in body
def is_message_event_in_assistant_thread(body: Dict[str, Any]) ‑> bool
-
Expand source code
def is_message_event_in_assistant_thread(body: Dict[str, Any]) -> bool: if is_event(body): return body["event"]["type"] == "message" and body["event"].get("channel_type") == "im" return False
def is_message_shortcut(body: Dict[str, Any]) ‑> bool
-
Expand source code
def is_message_shortcut(body: Dict[str, Any]) -> bool: return body is not None and _is_expected_type(body, "message_action") and "callback_id" in body
def is_options(body: Dict[str, Any]) ‑> bool
-
Expand source code
def is_options(body: Dict[str, Any]) -> bool: return is_block_suggestion(body) or is_dialog_suggestion(body)
def is_other_message_sub_event_in_assistant_thread(body: Dict[str, Any]) ‑> bool
-
Expand source code
def is_other_message_sub_event_in_assistant_thread(body: Dict[str, Any]) -> bool: # message_changed, message_deleted etc. if is_event(body): return ( is_message_event_in_assistant_thread(body) and not is_user_message_event_in_assistant_thread(body) and ( _is_other_message_sub_event(body["event"].get("message")) or _is_other_message_sub_event(body["event"].get("previous_message")) ) ) return False
def is_shortcut(body: Dict[str, Any]) ‑> bool
-
Expand source code
def is_shortcut(body: Dict[str, Any]) -> bool: return is_global_shortcut(body) or is_message_shortcut(body)
def is_slash_command(body: Dict[str, Any]) ‑> bool
-
Expand source code
def is_slash_command(body: Dict[str, Any]) -> bool: return body is not None and "command" in body
def is_user_message_event_in_assistant_thread(body: Dict[str, Any]) ‑> bool
-
Expand source code
def is_user_message_event_in_assistant_thread(body: Dict[str, Any]) -> bool: if is_event(body): return ( is_message_event_in_assistant_thread(body) and body["event"].get("subtype") in (None, "file_share") and body["event"].get("thread_ts") is not None and body["event"].get("bot_id") is None ) return False
def is_view(body: Dict[str, Any]) ‑> bool
-
Expand source code
def is_view(body: Dict[str, Any]) -> bool: return is_view_submission(body) or is_view_closed(body)
def is_view_closed(body: Dict[str, Any]) ‑> bool
-
Expand source code
def is_view_closed(body: Dict[str, Any]) -> bool: return body is not None and _is_expected_type(body, "view_closed") and "view" in body and "callback_id" in body["view"]
def is_view_submission(body: Dict[str, Any]) ‑> bool
-
Expand source code
def is_view_submission(body: Dict[str, Any]) -> bool: return ( body is not None and _is_expected_type(body, "view_submission") and "view" in body and "callback_id" in body["view"] )
def is_workflow_step_edit(body: Dict[str, Any]) ‑> bool
-
Expand source code
def is_workflow_step_edit(body: Dict[str, Any]) -> bool: return body is not None and _is_expected_type(body, "workflow_step_edit") and "callback_id" in body
def is_workflow_step_execute(body: Dict[str, Any]) ‑> bool
-
Expand source code
def is_workflow_step_execute(body: Dict[str, Any]) -> bool: return is_event(body) and body["event"]["type"] == "workflow_step_execute" and "workflow_step" in body["event"]
def is_workflow_step_save(body: Dict[str, Any]) ‑> bool
-
Expand source code
def is_workflow_step_save(body: Dict[str, Any]) -> bool: return is_view_submission(body) and body["view"]["type"] == "workflow_step"
def to_action(body: Dict[str, Any]) ‑> Dict[str, Any] | None
-
Expand source code
def to_action(body: Dict[str, Any]) -> Optional[Dict[str, Any]]: if is_action(body): if is_block_actions(body) or is_attachment_action(body): return body["actions"][0] else: return body return None
def to_command(body: Dict[str, Any]) ‑> Dict[str, Any] | None
-
Expand source code
def to_command(body: Dict[str, Any]) -> Optional[Dict[str, Any]]: return body if is_slash_command(body) else None
def to_event(body: Dict[str, Any]) ‑> Dict[str, Any] | None
-
Expand source code
def to_event(body: Dict[str, Any]) -> Optional[Dict[str, Any]]: return body["event"] if is_event(body) else None
def to_message(body: Dict[str, Any]) ‑> Dict[str, Any] | None
-
Expand source code
def to_message(body: Dict[str, Any]) -> Optional[Dict[str, Any]]: if is_event(body) and body["event"]["type"] == "message": return to_event(body) return None
def to_options(body: Dict[str, Any]) ‑> Dict[str, Any] | None
-
Expand source code
def to_options(body: Dict[str, Any]) -> Optional[Dict[str, Any]]: if is_options(body): return body return None
def to_shortcut(body: Dict[str, Any]) ‑> Dict[str, Any] | None
-
Expand source code
def to_shortcut(body: Dict[str, Any]) -> Optional[Dict[str, Any]]: if is_shortcut(body): return body return None
def to_step(body: Dict[str, Any]) ‑> Dict[str, Any] | None
-
Expand source code
def to_step(body: Dict[str, Any]) -> Optional[Dict[str, Any]]: # edit if is_workflow_step_edit(body): return body["workflow_step"] # save if is_workflow_step_save(body): return body["workflow_step"] # execute if is_workflow_step_execute(body): return body["event"]["workflow_step"] return None
def to_view(body: Dict[str, Any]) ‑> Dict[str, Any] | None
-
Expand source code
def to_view(body: Dict[str, Any]) -> Optional[Dict[str, Any]]: if is_view(body): return body["view"] return None