
    i:                     8   U d dl Z d dlmZ d dlmZmZ d dlmZ d dlmZ d dl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edefdZi Zeeef         ed<   dedefdZdedee         dee         dedee         f
dZdedefdZdS )    N)Logger)DictOptional)Union)InstallationStore)OAuthStateUtilsRedirectUriPageRenderer)FileInstallationStore)Installation)BoltRequest)BoltResponse   )$warning_installation_store_conflictsc                       e Zd ZdededefdZdeedf         de	de
fd	Z	 	 ddeedf         dededee         de
f
dZdS )CallbackResponseBuilderloggerstate_utilsredirect_uri_page_rendererc                0    || _         || _        || _        d S N)_logger_state_utils_redirect_uri_page_renderer)selfr   r   r   s       U/root/projects/butler/venv/lib/python3.11/site-packages/slack_bolt/oauth/internals.py__init__z CallbackResponseBuilder.__init__   s!     '+E(((    requestAsyncBoltRequestinstallationreturnc                    d|j          d}| j                            |           | j                            |j        |j        |j        |j                  }t          dd| j
                                        d|          S )Nz-Handling an OAuth callback success (request: ))app_idteam_idis_enterprise_installenterprise_url   text/html; charset=utf-8zContent-Typez
Set-Cookiestatusheadersbody)queryr   debugr   render_success_pager$   r%   r&   r'   r   r   build_set_cookie_for_deletion)r   r   r    debug_messagepage_contents        r    _build_callback_success_responsez8CallbackResponseBuilder._build_callback_success_response   s    
 YXXX=)))7KK& ("."D'6	 L 
 
  :"/MMOO  
 
 
 	
r     Nreasonr,   errorc                     d| d| d|j          d}| j                            |           t          |          }t	          |d| j                                        d| j                            |                    S )Nz,Handling an OAuth callback failure (reason: z	, error: z, request: r#   r)   r*   r+   )	r/   r   r0   build_detailed_errorr   r   r2   r   render_failure_page)r   r   r7   r,   r8   r3   detailed_errors          r    _build_callback_failure_responsez8CallbackResponseBuilder._build_callback_failure_response3   s     ~&}}[`}}mtmz}}}=))) .f55 :"/MMOO  1EEnUU
 
 
 	
r   )r6   N)__name__
__module____qualname__r   r   r	   r   r   r   r   r   r5   strintr   	Exceptionr=    r   r   r   r      s        	F 	F %		F
 %<	F 	F 	F 	F
{$667
 #
 
	
 
 
 
6 %)
 
{$667
 
 	

 	"
 

 
 
 
 
 
r   r   urlr!   c                 2    dt          j        |            dS )Nz<html>
<head>
<link rel="icon" href="data:,">
<style>
body {
  padding: 10px 15px;
  font-family: verdana;
  text-align: center;
}
</style>
</head>
<body>
<h2>Slack App Installation</h2>
<p><a href="a  "><img alt="Add to Slack" height="40" width="139" src="https://platform.slack-edge.com/img/add_to_slack.png" srcset="https://platform.slack-edge.com/img/add_to_slack.png 1x, https://platform.slack-edge.com/img/add_to_slack@2x.png 2x" /></a></p>
</body>
</html>
htmlescape)rE   s    r    _build_default_install_page_htmlrJ   J   s*     [   r   default_installation_stores	client_idc                 r    t                               |           }|t          |           }|t           | <   |S )N)rL   )rK   getr
   )rL   stores     r   (get_or_create_default_installation_storerP   b   s:    '++I66E}%	:::16#I.Lr   	app_storeoauth_flow_storer   c                     t          |           }|1|-||u r|S ||ur!|                    t                                 |S |S |S r   )rP   warningr   )rL   rQ   rR   r   defaults        r   $select_consistent_installation_storerV   j   sj     7yAAG'7**    y00CEEFFF##   r   r7   c                     | dk    r|  dS | dk    r|  dS | dk    r|  dS | dk    r|  dS t          j        |            d	S )
Ninvalid_browserz: This can occur due to page reload, not beginning the OAuth flow from the valid starting URL, or the /slack/install URL not using https://invalid_statez): The state parameter is no longer valid.missing_codez4: The code parameter is missing in this redirection.storage_errorzC: The app's server encountered an issue. Contact the app developer.zM: This error code is returned from Slack. Refer to the documents for details.rG   )r7   s    r   r:   r:      s    """ 8 8 8	

 
?	"	"CCCC	>	!	!NNNN	?	"	"]]]]+f%%ttttr   )rH   loggingr   typingr   r   r   slack_sdk.oauthr   r   r	   "slack_sdk.oauth.installation_storer
   r   slack_bolt.requestr   slack_bolt.responser   logger.messagesr   r   rA   rJ   rK   __annotations__rP   rV   r:   rD   r   r   <module>rd      s          ! ! ! ! ! ! ! !       - - - - - - D D D D D D D D D D D D D D ; ; ; ; ; ; * * * * * * , , , , , , B B B B B B7
 7
 7
 7
 7
 7
 7
 7
t# #    * =? T#'8"89 > > > @Q      )*  01  	 
         2u u u u u u u ur   