1 from turbot.blocks import input_block
4 submission_handlers = {}
6 def new_hunt(turb, payload):
7 """Handler for the action of user pressing the new_hunt button"""
11 "title": { "type": "plain_text", "text": "New Hunt" },
12 "submit": { "type": "plain_text", "text": "Create" },
14 input_block("Hunt name", "name", "Name of the hunt"),
15 input_block("Hunt ID", "slug", "Short prefix for hunt (no spaces)"),
16 input_block("Hunt URL", "url", "External URL of hunt")
20 result = turb.slack_client.views_open(trigger_id=payload['trigger_id'],
23 submission_handlers[result['view']['id']] = new_hunt_submission
30 def new_hunt_submission(turb, payload):
31 """Handler for the user submitting the new hunt modal
33 This is the modal view presented to the user by the new_hunt
36 state = payload['view']['state']['values']
37 name = state['name']['name']['value']
38 slug = state['slug']['slug']['value']
39 url = state['url']['url']['value']
41 table = turb.db.Table("hunts")
44 'channel_id': "placeholder-" + str(uuid.uuid4()),
56 def view_submission(turb, payload):
58 """Handler for Slack interactive view submission
60 Specifically, those that have a payload type of 'view_submission'"""
62 view_id = payload['view']['id']
64 if view_id in submission_handlers:
65 return submission_handlers[view_id](turb, payload)
67 print("Error: Unknown view ID: {}".format(view_id))