From 55f45324dd2edbe48a3b2795e290d65d4686b0c5 Mon Sep 17 00:00:00 2001 From: Weather Date: Sat, 2 May 2026 19:18:10 -0400 Subject: [PATCH] fix: Stops Form swallowing Stream --- src/api/endpoints.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/api/endpoints.py b/src/api/endpoints.py index 479819b..704d1db 100644 --- a/src/api/endpoints.py +++ b/src/api/endpoints.py @@ -5,6 +5,7 @@ from core import slack, wikithoughts, cshcalendar import json +import urllib logger: Logger = getLogger(__name__) router: APIRouter = APIRouter() @@ -75,7 +76,7 @@ async def slack_events(request: Request) -> JSONResponse: @router.post("/slack/message_actions") -async def message_actions(request: Request, payload: str = Form(...)) -> JSONResponse: +async def message_actions(request: Request) -> JSONResponse: """ Handles slack message action. @@ -92,6 +93,12 @@ async def message_actions(request: Request, payload: str = Form(...)) -> JSONRes logger.warning(f"Received a Fake Slack Message Action! {raw_body}") return JSONResponse({"error": "Invalid signature"}, status_code=403) + form_data = urllib.parse.parse_qs(raw_body.decode("utf-8")) + payload = form_data.get("payload", [None])[0] + + if payload is None: + return JSONResponse({"error": "Missing payload"}, status_code=400) + response_dict, status_code = await slack.process_slack_message_actions(payload) return JSONResponse(response_dict, status_code=status_code)