From: Carl Worth Date: Wed, 12 Jan 2022 06:45:07 +0000 (-0800) Subject: Add a stub for the turbot web view X-Git-Url: https://git.cworth.org/git?p=turbot;a=commitdiff_plain;h=192c9ca74b84a807c7f962a5ee6dd5c2d3c2759b Add a stub for the turbot web view Basically just to ensure we can distinguish a Slack request from any other. --- diff --git a/turbot_lambda/turbot_lambda.py b/turbot_lambda/turbot_lambda.py index 1aa428f..d529c85 100644 --- a/turbot_lambda/turbot_lambda.py +++ b/turbot_lambda/turbot_lambda.py @@ -89,12 +89,43 @@ def error(message): def turbot_lambda(event, context): """Top-level entry point for our lambda function. + This can handle either a REST API request from Slack, or an HTTP + request for teh Turbot web view + """ + + # First, determine if we've been invoked by Slack, (by presence of + # the X-Slack-Signature header) + headers = requests.structures.CaseInsensitiveDict(event['headers']) + + if 'X-Slack-Signature' in headers: + return turbot_slack_handler(event, context) + + # Otherwise, emit the Turbot web view + return turbot_web_view(event, context) + +def turbot_web_view(event, context): + """Turbot web view + + """ + + return { + 'statusCode': '200', + 'body': 'Hello, Lambda world.', + 'headers': { + 'Content-Type': 'application/text', + }, + } + +def turbot_slack_handler(event, context): + """Primary entry point for all Slack-initiated API requests to Turbot + This function first verifies that the request actually came from Slack, (by means of the SLACK_SIGNING_SECRET SSM parameter), and refuses to do anything if not. Then this defers to either turbot_event_handler or turbot_slash_command to do any real work. + """ headers = requests.structures.CaseInsensitiveDict(event['headers'])