
    'j                         d dl mZmZ d dlmZ d dlmZmZmZm	Z	 d dl
mZ d dlmZ d dlmZ d dlmZ  G d d	e
          Z G d de          Z G d de          ZdS )    )ABCMetaabstractmethod)Logger)CallableOptionalAnyDict)build_required_kwargs)BoltRequest)BoltResponse)get_arg_names_of_callablec            	       B    e Zd Zedededee         ddfd            ZdS )MiddlewareErrorHandlererrorrequestresponsereturnNc                     t                      )zHandles an unhandled exception.

        Args:
            error: The raised exception.
            request: The request.
            response: The response.
        )NotImplementedError)selfr   r   r   s       o/usr/local/lib/hermes-agent/venv/lib/python3.11/site-packages/slack_bolt/middleware/middleware_error_handler.pyhandlezMiddlewareErrorHandler.handle   s     "###    )	__name__
__module____qualname__r   	Exceptionr   r   r   r    r   r   r   r      s]        $$ $ <(	$
 
$ $ $ ^$ $ $r   r   )	metaclassc                   Z    e Zd Zdededee         f         fdZdede	dee         fdZ
d	S )
CustomMiddlewareErrorHandlerloggerfunc.c                 J    || _         || _        t          |          | _        d S N)r#   r"   r   	arg_names)r   r"   r#   s      r   __init__z%CustomMiddlewareErrorHandler.__init__   s#    	2488r   r   r   r   c                     t          | j        | j        |||d          } | j        di |}|;t	          |t
                    r(|j        |_        |j        |_        |j        |_        d S d S d S )NF)required_arg_namesr"   r   r   r   next_keys_requiredr   )	r
   r&   r"   r#   
isinstancer   statusheadersbody)r   r   r   r   kwargsreturned_responses         r   r   z#CustomMiddlewareErrorHandler.handle#   s     "7#~;$"
 "
 "
 &DI////(Z8I<-X-X(/6HO08H-2HMMM )(((r   N)r   r   r   r   r   r   r   r'   r   r   r   r   r   r   r!   r!      sz        9v 9Xc8L;Q6Q-R 9 9 9 9
33 3 <(	3 3 3 3 3 3r   r!   c                   :    e Zd ZdefdZdededee         fdZ	dS )DefaultMiddlewareErrorHandlerr"   c                     || _         d S r%   )r"   )r   r"   s     r   r'   z&DefaultMiddlewareErrorHandler.__init__9   s    r   r   r   r   c                 F    d| d}| j                             |           d S )Nz#Failed to run a middleware (error: ))r"   	exception)r   r   r   r   messages        r   r   z$DefaultMiddlewareErrorHandler.handle<   s1     A@@@g&&&&&r   N)
r   r   r   r   r'   r   r   r   r   r   r   r   r   r2   r2   8   sd        v    '' ' <(	' ' ' ' ' 'r   r2   N)abcr   r   loggingr   typingr   r   r   r	   !slack_bolt.kwargs_injection.utilsr
   slack_bolt.request.requestr   slack_bolt.response.responser   slack_bolt.util.utilsr   r   r!   r2   r   r   r   <module>r?      s*   ' ' ' ' ' ' ' '       0 0 0 0 0 0 0 0 0 0 0 0 C C C C C C 2 2 2 2 2 2 5 5 5 5 5 5 ; ; ; ; ; ;$ $ $ $ $w $ $ $ $$3 3 3 3 3#9 3 3 36' ' ' ' '$: ' ' ' ' 'r   