From 58fb9ca7d5c056f5545d4533e0a978c0a345abcb Mon Sep 17 00:00:00 2001 From: Carl Worth Date: Tue, 13 Oct 2020 21:26:55 -0700 Subject: [PATCH] Plumb the turb class down through all the functions here It might not be that pythonic to do this with just a simple structure and functions and not with any methods, but that's actually what I prefer at this point at least. --- turbot/actions.py | 2 +- turbot_lambda/turbot_lambda.py | 30 +++++++++++++++--------------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/turbot/actions.py b/turbot/actions.py index daf0227..f9dc83d 100644 --- a/turbot/actions.py +++ b/turbot/actions.py @@ -1,4 +1,4 @@ -def new_hunt(payload): +def new_hunt(turb, payload): print("In new_hunt function") 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 -- 2.43.0