
    i>              	          d dl Z d dlmZmZmZmZmZ d dlmZm	Z	 d dl
mZ d dlmZ deeeeeef         eeee         f         f                  deeee         f         fdZd	ed
ee         deeef         fdZdeeef         dee         fdZdeeef         dee         fdZdeeef         dee         fdZdeeef         dee         fdZdeeef         dee         fdZdeeef         dee         fdZdeeef         dee         fdZdeeef         dee         fdZdeeef         dee         fdZdeeef         dee         fdZdeeef         dee         fdZdeeef         deeeef                  fdZded	eeef         defdZdeeee         f         dee         fdZdeeeeeee         f         f                  deeee         f         fdZ defdZ!defdZ"dS )     N)OptionalDictUnionAnySequence)	parse_qslparse_qs)BoltContext)is_assistant_eventqueryreturnc                    | i S t          | t                    rt          t          | d                    S t          | t                    st	          | d          rwi }|                                 D ]^\  }}t          |t                    r|||<    t          |t                    r|g||<   <t          dt          |           d|  d          |S t          dt          |            d          )NTkeep_blank_valuesitemsUnsupported type () of element in headers ()z$Unsupported type of query detected ()	
isinstancestrdictr	   hasattrr   list
ValueErrortype)r   resultnamevalues       W/root/projects/butler/venv/lib/python3.11/site-packages/slack_bolt/request/internals.pyparse_queryr    	   s   }		E3		 PHUd;;;<<<	E4	 	  PGE7$;$; P+- ;;== 	f 	fKD%%&& f$tE3'' f %wt !dd5kk!d!d\a!d!d!deeeNUNNNOOO    bodycontent_typec                 F   | si S ||dk    s|                      d          rt          j        |           S d| v rKt          t	          | d                    }|                    d          }|t          j        |          S i S t          t	          | d                    S )Nzapplication/json{payloadTr   )
startswithjsonloadsr   r   get)r"   r#   paramsr&   s       r   
parse_bodyr,      s     	 \5G%G%GDOO\_L`L`%Gz$)DDAAABBFjj++G"z'***		$$???@@@r!   r&   c                     |                      d          4t          | d                   dk    rt          | d         d                   S d| v r#|                      d          }|d uo	|du p|dk    S dS )Nauthorizationsr   is_enterprise_installTtrueF)r*   lenextract_is_enterprise_install)r&   r/   s     r   r2   r2   -   s    {{#$$0SAQ9R5S5SVW5W5W -W5E-Fq-IJJJ')) ',C D D$D0w6Kt6S6vWlpvWvw5r!   c                     |                      d          }|0t          |t                    r|S d|v r|                     d          S |                      d          4t          | d                   dk    rt	          | d         d                   S d| v r|                      d          S |                      d          %d| d         v r| d                              d          S |                      d          t	          | d                   S d S )N
enterpriseidr.   r   enterprise_idteamevent)r*   r   r   r1   extract_enterprise_id)r&   orgs     r   r9   r9   8   s   
++l
#
#C
c3 	!JS[[774== {{#$$0SAQ9R5S5SVW5W5W %W-=%>q%ABBB'!!{{?+++{{6&?gfo+M+Mv""?333{{7'$WW%56664r!   c                    |                      d          du r|                      d          dk    r|                      di                                d          p(|                      di                                d          }|$t          |                              d          r|S ||                      d	          k    r|                      d
          S d S t          |           S )Nis_ext_shared_channelTr   event_callbackr8   	user_teamr7   Eteam_idr6   )r*   r   r'   r9   )r&   event_team_ids     r   extract_actor_enterprise_idrB   M   s    {{*++t33;;v"222 $KK4488EEmU\^`IaIaIeIeflImImM(S-?-?-J-J3-O-O($$I 6 666{{?3334 )))r!   c                    |                      di                                d          }||S |                      d          G|                      d          }t          |t                    r|S |rd|v r|                     d          S |                      d          4t          | d                   dk    rt	          | d         d                   S d| v r|                      d          S |                      d          t	          | d                   S |                      d	          | d	         d         S |                      d          |                      di           d         S d S )
Nviewapp_installed_team_idr7   r5   r.   r   r@   r8   user)r*   r   r   r1   extract_team_id)r&   rE   r7   s      r   rG   rG   [   si   #KK33778OPP(
 %${{6& {{6""dC   	"K 	"ddll88D>>!{{#$$0SAQ9R5S5SVW5W5W w'78;<<<G{{9%%%{{7'ww/000{{6&vy)){{6&{{62&&y114r!   c                    |                      d          du r_|                      d          dk    rE|                      di                                d          }|dk    rz|                      di                                d          }|)|                      di                                d          S t          |                              d	          r|S d S |                      di                                d          }|t          |                              d	          r|S t          |                              d
          r\||                      d          k    r|                      d          S ||                      d          k    r|                      d          S |                      di                                d          }|t          |                              d	          r|S t          |                              d
          r\||                      d          k    r|                      d          S ||                      d          k    r|                      d          S d S t          |           S )Nr<   Tr   r=   r8   app_mentionr>   r7   Tr?   r6   r@   context_enterprise_idcontext_team_id)r*   r   r'   rG   )r&   
event_typer>   event_user_team
event_teams        r   extract_actor_team_idrP   z   s[   {{*++t33;;v"222 Wb1155f==J]** $KK4488EE	$";;w3377???y>>,,S11 %$$t &kk'266::;GGO*''22377 >**))44S99 >&'++o*F*FFF&{{9555(GKK8O,P,PPP&{{+<=== Wb1155f==J%z??--c22 >%%__//44 >!W[[%A%AAA&{{9555#w{{3J'K'KKK&{{+<===47###r!   c                    |                      d          }|0t          |t                    r|S d|v r|                     d          S d| v r|                      d          S |                      d          t          | d                   S |                      d          t          | d                   S |                      d          t          | d                   S d S )NrF   r5   user_idr8   messageprevious_message)r*   r   r   extract_user_id)r&   rF   s     r   rU   rU      s    ;;vDdC   	"KT\\88D>>!G{{9%%%{{7'ww/000{{9)wy1222{{%&&2w'9:;;;4r!   c                 F   |                      d          du r||                      d          dk    rc|                      d          }|d S t          |           t          |           d S |                     d          p|                     d          S t          |           S )Nr<   Tr   r=   r8   rF   rR   )r*   rB   rP   rU   r&   r8   s     r   extract_actor_user_idrX      s    {{*++t33;;v"222KK((E}t*733;@UV]@^@^@ft99V$$<		)(<(<<7###r!   c                    |                      d          }|0t          |t                    r|S d|v r|                     d          S d| v r|                      d          S |                      d          t          | d                   S |                      d          t          | d                   S |                      d          t          | d                   S d S )Nchannelr5   
channel_idr8   itemassistant_thread)r*   r   r   extract_channel_id)r&   rZ   s     r   r^   r^      s    kk)$$Ggs## 	%NW__;;t$$$w{{<((({{7'!''"2333{{6&!'&/222{{%&&2!'*<"=>>>4r!   c                 (   t          |           r| d         }|                    d          D|d                             d          )|d                             d          |d         d         S |                    d          |                    d          |d         S |                    di                               d          |d         d         S |                    di                               d          |d         d         S d S )Nr8   r]   r[   	thread_tsrZ   rS   rT   )r   r*   rW   s     r   extract_thread_tsra      s    '"" > II())5()--l;;G()--k::F
 +,[99YYy!!-yy%%1[))9b))--k::FY'44-r2266{CCO/0==4r!   c                    |                      d          |                      d          S |                      d          t          | d                   S |                      d          | d                              d          S d S )Nfunction_execution_idr8   function_dataexecution_id)r*   extract_function_execution_idr&   s    r   rf   rf      s}    {{*++7{{2333{{7',WW-=>>>{{?##/'++N;;;4r!   c                     |                      d          |                      d          S |                      d          | d                              d          S d S )Nbot_access_tokenr8   r*   rg   s    r   !extract_function_bot_access_tokenrk      sY    {{%&&2{{-...{{7'w##$67774r!   c                     |                      d          | d                              d          S |                      d          | d                              d          S d S )Nr8   inputsrd   rj   rg   s    r   extract_function_inputsrn     s]    {{7'w##H---{{?##/'++H5554r!   contextc                    t          |          | d<   t          |          }|r|| d<   t          |          }|r|| d<   t          |          }|r|| d<   t	          |          }|r|| d<   t          |          }|r|| d<   t          |          }|r|| d<   t          |          }|r|| d<   t          |          }	|	r|	| d	<   t          |          }
|
1|
| d
<   t          |          }||| d<   t          |          }||| d<   d|v r|d         | d<   nxd|v rt|d         }t          |          dk    rYt          |          dk    r&| j                            t                                 |d                             d          }|| d<   | S )Nr/   r6   r@   rR   actor_enterprise_idactor_team_idactor_user_idr[   r`   rc   function_bot_access_tokenrm   response_urlresponse_urls   r   )r2   r9   rG   rU   rB   rP   rX   r^   ra   rf   rk   rn   r1   loggerdebug%debug_multiple_response_urls_detectedr*   )ro   r"   r6   r@   rR   rq   rr   rs   r[   r`   rc   rt   rm   rv   ru   s                  r   build_contextr{     s   'DT'J'JG#$)$//M 1#0 d##G %$	d##G %$	5d;; =)<%&)$//M 1#0 )$//M 1#0 #D))J + *!$''I )(9$??(+@'($Ed$K$K!$03LG/0(.. &GH"&~"6	D	 	 _-}""=!!A%%$$%J%L%LMMM(+//??L&2GN#Nr!   headersc                 z    |                      dd g          d         }|r|                    d          d         S d S )Nzcontent-typer   ;)r*   split)r|   r#   s     r   extract_content_typer   @  sB    ")++ntf"E"Ea"HL *!!#&&q))4r!   c                    i }| |                                  D ]r\  }}|                                }t          |t                    r|||<   4t          |t                    r|g||<   Pt          dt          |           d|  d          |S )Nr   r   r   )r   lowerr   r   r   r   r   )r|   normalized_headerskeyr   normalized_names        r   build_normalized_headersr   G  s    35!--// 	h 	hJC!iikkO%&& h6;"?33E3'' h7<g"?33 !fd5kk!f!f\c!f!f!fgggr!   c                      dS )NzE`body` must be a raw string data when running in the HTTP server mode r   r!   r   ,error_message_raw_body_required_in_http_moder   U  s    RRr!   c                      	 dS )Nz`response_urls` in the body has multiple URLs in it. If you would like to use non-primary one, please manually extract the one from body['response_urls'].r   r   r!   r   rz   rz   Y  s    	F r!   )#r(   typingr   r   r   r   r   urllib.parser   r	   slack_bolt.contextr
    slack_bolt.request.payload_utilsr   r   r    r,   boolr2   r9   rB   rG   rP   rU   rX   r^   ra   rf   rk   rn   r{   r   r   r   rz   r   r!   r   <module>r      sA    7 7 7 7 7 7 7 7 7 7 7 7 7 7 , , , , , , , , * * * * * * ? ? ? ? ? ?Pxc4S>4Xc]@R;S&S TU PZ^_bdlmpdq_qZr P P P P&AS A A$sCx. A A A A"4S> htn    4S> hsm    **c3h *HSM * * * *T#s(^     >'$4S> '$hsm '$ '$ '$ '$TT#s(^     (
$4S> 
$hsm 
$ 
$ 
$ 
$S#X 8C=    (tCH~ (3-    84S> hsm    tCH~ (3-    T#s(^ c3h8P    .; .d38n . . . . .b$sHSM'9": x}    htCsHSM?Q9R4R/S&T Y]^acklocp^pYq    Sc S S S Ss      r!   