]> git.cworth.org Git - turbot/commitdiff
Plumb the turb class down through all the functions here
authorCarl Worth <cworth@cworth.org>
Wed, 14 Oct 2020 04:26:55 +0000 (21:26 -0700)
committerCarl Worth <cworth@cworth.org>
Wed, 14 Oct 2020 04:26:55 +0000 (21:26 -0700)
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
turbot_lambda/turbot_lambda.py

index daf0227bb870fb1635afc8eb2abe8bdfb0352d0d..f9dc83dd0caf8a59f263aead9f1ab79bef596cd4 100644 (file)
@@ -1,4 +1,4 @@
-def new_hunt(payload):
+def new_hunt(turb, payload):
 
     print("In new_hunt function")
 
index b34c6f7cd209100264b9429161b6461279007e28..113e639c3cd325e3a8de3e132c409437b2ad302e 100644 (file)
@@ -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