
    i                     L    d dl Z d dlmZ d dlmZmZmZmZ  G d d          ZdS )    N)SimpleCookie)UnionDictOptionalSequencec                      e Zd ZU eed<   eed<   eeee         f         ed<   ddddedeee	f         de
eeeeee         f         f                  fdZdeeef         fd	Zdeeef         fd
Zdee         fdZededefd            ZdS )BoltResponsestatusbodyheaders N)r   r   c                   || _         t          |t                    rt          j        |          n|| _        i | _        ||                                D ]\  }}|t          |t                    r|| j        |	                                <   :t          |t                    r*t          |          | j        |	                                <   yt          |          g| j        |	                                <   d| j                                        vr;| j        r'| j                            d          rdg| j        d<   dS dg| j        d<   dS dS )zThe response from a Bolt app.

        Args:
            status: HTTP status code
            body: The response body (dict and str are supported)
            headers: The response headers.
        Nzcontent-type{zapplication/json;charset=utf-8ztext/plain;charset=utf-8)r
   
isinstancedictjsondumpsr   r   itemslistlowersetstrkeys
startswith)selfr
   r   r   namevalues         W/root/projects/butler/venv/lib/python3.11/site-packages/slack_bolt/response/response.py__init__zBoltResponse.__init__   sE    "-7d-C-CMD)))	13&}} > >e=eT** >16DL..s++ >15eDL..25e**DL..!2!2!4!444y LTY11#66 L0P/Q^,,,0J/K^,,,	 54    returnc                 H    d | j                                         D             S )Nc                 @    i | ]\  }}|t          |          d          S )r   r   .0kvs      r   
<dictcomp>z.BoltResponse.first_headers.<locals>.<dictcomp>.   s(    ???$!Q4771:???r    r   r   r   s    r   first_headerszBoltResponse.first_headers-   s$    ??$,*<*<*>*>????r    c                 H    d | j                                         D             S )Nc                 L    i | ]!\  }}|d k    |t          |          d         "S )
set-cookier   r$   r%   s      r   r)   zABoltResponse.first_headers_without_set_cookie.<locals>.<dictcomp>1   s2    TTT$!Q!|BSBS4771:BSBSBSr    r*   r+   s    r    first_headers_without_set_cookiez-BoltResponse.first_headers_without_set_cookie0   s$    TT$,*<*<*>*>TTTTr    c                 V      j                             dg           } fd|D             S )Nr/   c                 :    g | ]}                     |          S  )_to_simple_cookie)r&   r(   r   s     r   
<listcomp>z(BoltResponse.cookies.<locals>.<listcomp>5   s'    AAAa&&q))AAAr    )r   get)r   header_valuess   ` r   cookieszBoltResponse.cookies3   s4    ((r::AAAA=AAAAr    header_valuec                 L    t                      }|                    |            |S )N)r   load)r9   cs     r   r4   zBoltResponse._to_simple_cookie7   s"    NN	|r    )__name__
__module____qualname__int__annotations__r   r   r   r   r   r   r   r,   r0   r   r8   staticmethodr4   r3   r    r   r	   r	      sY        KKK
III#x}$%%%% "$BF L  L  L  L CI	 L
 $sE#x}*<$==>? L  L  L  LD@tCH~ @ @ @ @U$sCx. U U U UB,/ B B B B      \  r    r	   )	r   http.cookiesr   typingr   r   r   r   r	   r3   r    r   <module>rE      sv     % % % % % % 2 2 2 2 2 2 2 2 2 2 2 25 5 5 5 5 5 5 5 5 5r    