def test_document(self): input = { "action_id": "text1234", "type": "multi_external_select", "placeholder": {"type": "plain_text", "text": "Select items"}, "min_query_length": 3, } self.assertDictEqual(input, ExternalDataMultiSelectElement(**input).to_dict())
def test_focus_on_load(self): input = { "action_id": "text1234", "type": "multi_external_select", "placeholder": { "type": "plain_text", "text": "Select items" }, "focus_on_load": True, } self.assertDictEqual(input, ExternalDataMultiSelectElement(**input).to_dict())
def test_document_initial_options(self): input = { "action_id": "text1234", "type": "multi_external_select", "placeholder": {"type": "plain_text", "text": "Select items"}, "initial_options": [ { "text": {"type": "plain_text", "text": "The default channel"}, "value": "C1234567890", } ], "min_query_length": 0, "max_selected_items": 1, } self.assertDictEqual(input, ExternalDataMultiSelectElement(**input).to_dict())
def handle_command(body: dict, ack: Ack, respond: Respond, client: WebClient, logger: Logger) -> None: logger.info(body) ack( text="Accepted!", blocks=[ SectionBlock( block_id="b", text=MarkdownTextObject(text=":white_check_mark: Accepted!"), ) ], ) respond(blocks=[ SectionBlock( block_id="b", text=MarkdownTextObject( text="You can add a button alongside text in your message. "), accessory=ButtonElement( action_id="a", text=PlainTextObject(text="Button"), value="click_me_123", ), ), ]) res = client.views_open( trigger_id=body["trigger_id"], view=View( type="modal", callback_id="view-id", title=PlainTextObject(text="My App"), submit=PlainTextObject(text="Submit"), close=PlainTextObject(text="Cancel"), blocks=[ InputBlock( element=PlainTextInputElement(action_id="text"), label=PlainTextObject(text="Label"), ), InputBlock( block_id="es_b", element=ExternalDataSelectElement( action_id="es_a", placeholder=PlainTextObject(text="Select an item"), min_query_length=0, ), label=PlainTextObject(text="Search"), ), InputBlock( block_id="mes_b", element=ExternalDataMultiSelectElement( action_id="mes_a", placeholder=PlainTextObject(text="Select an item"), min_query_length=0, ), label=PlainTextObject(text="Search (multi)"), ), ], ), ) logger.info(res)