X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=turbot_lambda%2Fturbot_lambda.py;h=113e639c3cd325e3a8de3e132c409437b2ad302e;hb=58fb9ca7d5c056f5545d4533e0a978c0a345abcb;hp=b34c6f7cd209100264b9429161b6461279007e28;hpb=7ee3eb858037ec49d021235b8f1b94479fbb954a;p=turbot diff --git a/turbot_lambda/turbot_lambda.py b/turbot_lambda/turbot_lambda.py index b34c6f7..113e639 100644 --- a/turbot_lambda/turbot_lambda.py +++ b/turbot_lambda/turbot_lambda.py @@ -72,12 +72,12 @@ def turbot_lambda(event, context): content_type = headers['content-type'] if (content_type == "application/json"): - return turbot_event_handler(event, context) + return turbot_event_handler(turb, event, context) if (content_type == "application/x-www-form-urlencoded"): - return turbot_interactive_or_slash_command(event, context) + return turbot_interactive_or_slash_command(turb, event, context) return error("Unknown content-type: {}".format(content_type)) -def turbot_event_handler(event, context): +def turbot_event_handler(turb, event, context): """Handler for all subscribed Slack events""" body = json.loads(event['body']) @@ -85,12 +85,12 @@ def turbot_event_handler(event, context): type = body['type'] if type == 'url_verification': - return url_verification_handler(body) + return url_verification_handler(turb, body) if type == 'event_callback': - return event_callback_handler(body) + return event_callback_handler(turb, body) return error("Unknown event type: {}".format(type)) -def url_verification_handler(body): +def url_verification_handler(turb, body): # First, we have to properly respond to url_verification # challenges or else Slack won't let us configure our URL as an @@ -102,14 +102,14 @@ def url_verification_handler(body): 'body': challenge } -def event_callback_handler(body): +def event_callback_handler(turb, body): type = body['event']['type'] if type in turbot.events.events: return turbot.events.events[type](turb, body) return error("Unknown event type: {}".format(type)) -def turbot_interactive_or_slash_command(event, context): +def turbot_interactive_or_slash_command(turb, event, context): """Handler for Slack interactive things (buttons, shortcuts, etc.) as well as slash commands. @@ -122,12 +122,12 @@ def turbot_interactive_or_slash_command(event, context): # The difference is that an interactive thingy has a 'payload' # while a slash command has a 'command' if 'payload' in body: - return turbot_interactive(json.loads(body['payload'][0])) + return turbot_interactive(turb, json.loads(body['payload'][0])) if 'command' in body: - return turbot_slash_command(body) + return turbot_slash_command(turb, body) return error("Unrecognized event (neither interactive nor slash command)") -def turbot_interactive(payload): +def turbot_interactive(turb, payload): """Handler for Slack interactive requests These are the things that come from a user interacting with a button @@ -137,10 +137,10 @@ def turbot_interactive(payload): type = payload['type'] if type == 'block_actions': - return turbot_block_action(payload) + return turbot_block_action(turb, payload) return error("Unrecognized interactive type: {}".format(type)) -def turbot_block_action(payload): +def turbot_block_action(turb, payload): """Handler for Slack interactive block actions Specifically, those that have a payload type of 'block_actions'""" @@ -160,10 +160,10 @@ def turbot_block_action(payload): atype in turbot.actions.actions and avalue in turbot.actions.actions[atype] ): - return turbot.actions.actions[atype][avalue](payload) + return turbot.actions.actions[atype][avalue](turb, payload) return error("Unknown action of type/value: {}/{}".format(atype, avalue)) -def turbot_slash_command(body): +def turbot_slash_command(turb, body): """Implementation for Slack slash commands. This parses the request and arguments and farms out to