22import json
33import logging
44import os
5+ import time
56from concurrent .futures .thread import ThreadPoolExecutor
67from http .server import SimpleHTTPRequestHandler , HTTPServer
78from typing import List , Union , Pattern , Callable , Dict , Optional , Sequence
4243 error_client_invalid_type ,
4344 error_authorize_conflicts ,
4445 warning_bot_only_conflicts ,
46+ debug_return_listener_middleware_response ,
4547)
4648from slack_bolt .middleware import (
4749 Middleware ,
@@ -323,6 +325,7 @@ def dispatch(self, req: BoltRequest) -> BoltResponse:
323325 :param req: An incoming request from Slack.
324326 :return: The response generated by this Bolt app.
325327 """
328+ starting_time = time .time ()
326329 self ._init_context (req )
327330
328331 resp : BoltResponse = BoltResponse (status = 200 , body = "" )
@@ -348,12 +351,27 @@ def middleware_next():
348351 self ._framework_logger .debug (debug_checking_listener (listener_name ))
349352 if listener .matches (req = req , resp = resp ):
350353 # run all the middleware attached to this listener first
351- resp , next_was_not_called = listener .run_middleware (req = req , resp = resp )
354+ middleware_resp , next_was_not_called = listener .run_middleware (
355+ req = req , resp = resp
356+ )
352357 if next_was_not_called :
358+ if middleware_resp is not None :
359+ if self ._framework_logger .level <= logging .DEBUG :
360+ debug_message = debug_return_listener_middleware_response (
361+ listener_name ,
362+ middleware_resp .status ,
363+ middleware_resp .body ,
364+ starting_time ,
365+ )
366+ self ._framework_logger .debug (debug_message )
367+ return middleware_resp
353368 # The last listener middleware didn't call next() method.
354369 # This means the listener is not for this incoming request.
355370 continue
356371
372+ if middleware_resp is not None :
373+ resp = middleware_resp
374+
357375 self ._framework_logger .debug (debug_running_listener (listener_name ))
358376 listener_response : Optional [BoltResponse ] = self ._listener_runner .run (
359377 request = req ,
0 commit comments