
    i                     t    d dl 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mZmZmZmZmZ  G d d          ZdS )    )DictOptionalUnionAnySequence)BoltContext)	BoltError)parse_query
parse_bodybuild_normalized_headersbuild_contextextract_content_type,error_message_raw_body_required_in_http_modec                      e Zd ZU eed<   eeee         f         ed<   eeee         f         ed<   ee         ed<   eeef         ed<   e	ed<   e
ed<   ee         ed<   eed	<   d
d
d
dddeeef         deeeeeef         eeee         f         f                  deeeeeee         f         f                  deeeef                  d	ef
dZddZd
S )BoltRequestraw_bodyqueryheaderscontent_typebodycontext	lazy_onlylazy_function_namemodeNhttp)r   r   r   r   c                (   |dk    r>|0t          |t                    st          t                                ||nd| _        n&|t          |t                    r|| _        nd| _        t          |          | _        t          |          | _        t          | j                  | _
        t          |t                    r t          | j        | j
                  | _        n$t          |t                    r|| _        ni | _        t          t          |r|ni           | j                  | _        t#          | j                            ddg          d                   | _        | j                            ddg          d         | _        || _        dS )ap  Request to a Bolt app.

        Args:
            body: The raw request body (only plain text is supported for "http" mode)
            query: The query string data in any data format.
            headers: The request headers.
            context: The context in this request.
            mode: The mode used for this request. (either "http" or "socket_mode")
        r   N zx-slack-bolt-lazy-onlyFr   zx-slack-bolt-lazy-function-name)
isinstancestrr	   r   r   r
   r   r   r   r   r   r   r   dictr   r   r   boolgetr   r   r   )selfr   r   r   r   r   s         U/root/projects/butler/venv/lib/python3.11/site-packages/slack_bolt/request/request.py__init__zBoltRequest.__init__   sl   $ 6>>
4(=(= L N NOOO$($4DD"DMM JtS$9$9 $ !# ''
/880>>dC   	"4=$2CDDDIId## 	DIIDI$[G1K%L%LdiXXdl../G%QQRSTUU"&,"2"23TW[V\"]"]^_"`			    returnc                     | j         dk    r| j        n| j        }t          || j        | j        | j                                        | j                   S )Nr   )r   r   r   r   r   )r   r   r   r   r   r   r   to_copyable)r#   r   s     r$   r)   zBoltRequest.to_copyableJ   sU    26)v2E2E49*LL,,..
 
 
 	
r&   )r'   r   )__name__
__module____qualname__r   __annotations__r   r   r   r   r   r!   r   r    r%   r)    r&   r$   r   r      st        MMMXc]"#####x}$%%%%3-
sCx.OOO %%%
III QUBF,0. . . CI. c4S>4Xc]8J3KKLM	.
 $sE#x}*<$==>?. $sCx.). . . . .`
 
 
 
 
 
r&   r   N)typingr   r   r   r   r   slack_bolt.context.contextr   slack_bolt.errorr	   slack_bolt.request.internalsr
   r   r   r   r   r   r   r.   r&   r$   <module>r3      s    7 7 7 7 7 7 7 7 7 7 7 7 7 7 2 2 2 2 2 2 & & & & & &               C
 C
 C
 C
 C
 C
 C
 C
 C
 C
r&   