
    i                     |    d dl mZmZ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 d dlmZ  G d d          Zd	S )
    )AnyCallableDictIterableListTuple)App)WsgiHttpRequest)WsgiHttpResponse)BoltRequest)BoltResponsec            	           e Zd ZddedefdZdedefdZdedefdZ	dedefd	Z
dedefd
Zdeeef         deeeeeef                  gdf         dee         fdZdS )SlackRequestHandler/slack/eventsapppathc                 "    || _         || _        dS )a  Setup Bolt as a WSGI web framework, this will make your application compatible with WSGI web servers.
        This can be used for production deployments.

        With the default settings, `http://localhost:3000/slack/events`
        Run Bolt with [gunicorn](https://gunicorn.org/)

        # Python
            app = App()

            api = SlackRequestHandler(app)

        # bash
            export SLACK_SIGNING_SECRET=***

            export SLACK_BOT_TOKEN=xoxb-***

            gunicorn app:api -b 0.0.0.0:3000 --log-level debug

        Args:
            app: Your bolt application
            path: The path to handle request from Slack (Default: `/slack/events`)
        N)r   r   )selfr   r   s      Z/root/projects/butler/venv/lib/python3.11/site-packages/slack_bolt/adapter/wsgi/handler.py__init__zSlackRequestHandler.__init__   s    . 	    requestreturnc                     | j                             t          |                                |j        |                                                    S N)bodyqueryheaders)r   dispatchr   get_bodyquery_stringget_headersr   r   s     r   r   zSlackRequestHandler.dispatch%   sJ    x  W--//w7KU\UhUhUjUjkkk
 
 	
r   c                     | j         j                            t          |                                |j        |                                                    S r   )r   
oauth_flowhandle_installationr   r    r!   r"   r#   s     r   r&   z'SlackRequestHandler.handle_installation*   sM    x"66W--//w7KU\UhUhUjUjkkk
 
 	
r   c                     | j         j                            t          |                                |j        |                                                    S r   )r   r%   handle_callbackr   r    r!   r"   r#   s     r   r(   z#SlackRequestHandler.handle_callback/   sM    x"22W--//w7KU\UhUhUjUjkkk
 
 	
r   c                 <   |j         dk    r| j        j        |j        | j        j        j        k    r6|                     |          }t          |j        |j        |j	                  S |j        | j        j        j
        k    r6|                     |          }t          |j        |j        |j	                  S |j         dk    rF|j        | j        k    r6|                     |          }t          |j        |j        |j	                  S t          dddgid          S )NGET)statusr   r   POSTi  zcontent-typeztext/plain;charset=utf-8z	Not Found)methodr   r%   r   install_pathr&   r   r+   r   r   redirect_uri_pathr(   r   )r   r   bolt_responses      r   _get_http_responsez&SlackRequestHandler._get_http_response4   s(   >U""x".<48#6#CCC$($<$<W$E$EM+,3]=RYfYk    \TX%8%JJJ$($8$8$A$AM+,3]=RYfYk    >V##	(A(A MM'22M#=+?I^erewxxxxs^F`Ea4bituuuur   environstart_responseNc                     t          |          }d|j        v rM|                     |          } ||j        |                                           |                                S t          d|j                   )NHTTP)r   zUnsupported SERVER_PROTOCOL: )r
   protocolr1   r+   r"   r    	TypeError)r   r2   r3   r   responses        r   __call__zSlackRequestHandler.__call__F   s    
 "'**W%%%)-)@)@ *A * *H N8?H,@,@,B,BCCC$$&&&J8HJJKKKr   )r   )__name__
__module____qualname__r	   strr   r
   r   r   r&   r(   r   r1   r   r   r   r   r   r   bytesr9    r   r   r   r   
   s+        C s    4
 
L 
 
 
 


? 
| 
 
 
 


 
< 
 
 
 

v/ v>N v v v v$Lc3hL !#tE#s(O'<!=t!CDL 
%	L L L L L Lr   r   N)typingr   r   r   r   r   r   
slack_boltr	   $slack_bolt.adapter.wsgi.http_requestr
   %slack_bolt.adapter.wsgi.http_responser   slack_bolt.requestr   slack_bolt.responser   r   r?   r   r   <module>rF      s    = = = = = = = = = = = = = = = =       @ @ @ @ @ @ B B B B B B * * * * * * , , , , , ,HL HL HL HL HL HL HL HL HL HLr   