o
    Vhf                     @   s   d dl Z d dlZd dlZd dlmZ d dlmZ d dlmZm	Z	m
Z
mZ d dlmZ d dlmZmZmZmZmZ d dlmZ dd	lmZmZmZ dd
lmZ ddlmZ ddlmZ G dd dZ dS )    N)HTTPResponse)
SSLContext)DictUnionListOptional)	HTTPError)RequesturlopenOpenerDirectorProxyHandlerHTTPSHandler)SlackRequestError   )_build_body_build_request_headers_debug_log_response)WebhookResponse   )
Attachment)Blockc                   @   s  e Zd Zee Z				ddededee	 dee dee
eef  f
dd	Zdddddd
dee deeee
eef ef   deeee
eef ef   dee dee
eef  defddZdde
eef dee
eef  defddZde
eef de
eef defddZdS )WebhookClient   Nurltimeoutsslproxydefault_headersc                 C   s0   || _ || _|| _|| _|r|| _d S i | _d S N)r   r   r   r   r   )selfr   r   r   r   r    r    Y/var/www/html/status_management/venv/lib/python3.10/site-packages/slack/webhook/client.py__init__   s
   zWebhookClient.__init__)textattachmentsblocksresponse_typeheadersr#   r$   r%   r&   r'   returnc                C   s   | j ||||d|dS )N)r#   r$   r%   r&   bodyr'   )	send_dict)r   r#   r$   r%   r&   r'   r    r    r!   send"   s   	zWebhookClient.sendr*   c                 C   s   | j t|t| j|dS )Nr)   )_perform_http_requestr   r   r   )r   r*   r'   r    r    r!   r+   5   s   
zWebhookClient.send_dictc             
   C   s  t |}d|d< | jjtjkr | jd| j d| d|  z}| j}d }| 	dr`t
d||d|d	}| jd ur_t| jtrVtjt| j| jd
t| jd}ntd| j dntd| d }|rt|j|| jd}n	t|| j| jd}|j pd}| |}t||j||jd}t| j| |W S  t y }	 z3|	j pd}|	 |}t||	j!||	jd}|	j!dkr|jd |jd< t| j| |W  Y d }	~	S d }	~	w t"y }
 z| j#d|
  |
d }
~
ww )Nzapplication/json;charset=utf-8zContent-TypezSending a request - url: z, body: z, headers: httpPOSTzutf-8)methodr   datar'   )r.   https)contextzInvalid proxy detected: z must be a str valuezInvalid URL detected: )r   )r3   r   )r   status_coder*   r'   i  zretry-afterzRetry-Afterz.Failed to send a request to Slack API server: )$jsondumpsloggerlevelloggingDEBUGdebugr   lower
startswithr	   encoder   
isinstancestrurllibrequestbuild_openerr   r   r   r   openr   r
   r'   get_content_charsetreaddecoder   statusr   r   code	Exceptionerror)r   r*   r'   r   openerreqrespcharsetresponse_bodyeerrr    r    r!   r-   ;   sf   
 

	
z#WebhookClient._perform_http_request)r   NNNr   )__name__
__module____qualname__r9   	getLoggerr7   r@   intr   r   r   r"   r   r   anyr   r   r   r,   r+   r-   r    r    r    r!   r      sJ    


,*r   )!r5   r9   rA   http.clientr   r   r   typingr   r   r   r   urllib.errorr   urllib.requestr	   r
   r   r   r   slack.errorsr   internal_utilsr   r   r   webhook_responser   web.classes.attachmentsr   web.classes.blocksr   r   r    r    r    r!   <module>   s    