o
    ´Å^’6  ã                   @   s¸   d Z ddlmZ ddlZddlZddlZddlZddlZddlZddl	Z	ddl
mZ zddlZW n ey;   edƒ‚w e e¡ZG dd„ dejƒZG dd	„ d	eƒZG d
d„ deƒZdS )aø  
    SendinBlue API

    SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to :   - Manage your campaigns and get the statistics   - Manage your contacts   - Send transactional Emails and SMS   - and much more...  You can download our wrappers at https://github.com/orgs/sendinblue  **Possible responses**   | Code | Message |   | :-------------: | ------------- |   | 200  | OK. Successful Request  |   | 201  | OK. Successful Creation |   | 202  | OK. Request accepted |   | 204  | OK. Successful Update/Deletion  |   | 400  | Error. Bad Request  |   | 401  | Error. Authentication Needed  |   | 402  | Error. Not enough credit, plan upgrade needed  |   | 403  | Error. Permission denied  |   | 404  | Error. Object does not exist |   | 405  | Error. Method not allowed  |   | 406  | Error. Not Acceptable  |   # noqa: E501

    OpenAPI spec version: 3.0.0
    Contact: contact@sendinblue.com
    Generated by: https://github.com/swagger-api/swagger-codegen.git
é    )Úabsolute_importN)Ú	urlencodez'Swagger python client requires urllib3.c                   @   s&   e Zd Zdd„ Zdd„ Zddd„ZdS )	ÚRESTResponsec                 C   s"   || _ |j| _|j| _|j| _d S ©N)Úurllib3_responseÚstatusÚreasonÚdata)ÚselfÚresp© r   úE/var/www/html/env/lib/python3.10/site-packages/sib_api_v3_sdk/rest.pyÚ__init__&   s   zRESTResponse.__init__c                 C   s
   | j  ¡ S )z-Returns a dictionary of the response headers.)r   Ú
getheaders)r
   r   r   r   r   ,   s   
zRESTResponse.getheadersNc                 C   s   | j  ||¡S )z Returns a given response header.)r   Ú	getheader)r
   ÚnameÚdefaultr   r   r   r   0   s   zRESTResponse.getheaderr   )Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r   r   r   $   s    r   c                   @   sˆ   e Zd Zddd„Z			ddd„Z		ddd	„Z		dd
d„Z		ddd„Z		ddd„Z		ddd„Z			ddd„Z
		ddd„ZdS )ÚRESTClientObjecté   Nc              
   C   sº   |j rtj}ntj}|jr|j}nt ¡ }i }|jd ur!|j|d< |d u r0|jd ur.|j}nd}|j	rIt
jd|||||j|j|j	dœ|¤Ž| _d S t
jd|||||j|jdœ|¤Ž| _d S )NÚassert_hostnamer   )Ú	num_poolsÚmaxsizeÚ	cert_reqsÚca_certsÚ	cert_fileÚkey_fileÚ	proxy_url)r   r   r   r   r   r   r   )Ú
verify_sslÚsslÚCERT_REQUIREDÚ	CERT_NONEÚssl_ca_certÚcertifiÚwherer   Úconnection_pool_maxsizeÚproxyÚurllib3ÚProxyManagerr   r   Úpool_managerÚPoolManager)r
   ÚconfigurationÚ
pools_sizer   r   r   Úaddition_pool_argsr   r   r   r   7   sF   


ùøúùzRESTClientObject.__init__Tc	              
   C   sF  |  ¡ }|dv s
J ‚|r|rtdƒ‚|pi }|pi }d}	|rHt|tjr&tfnttfƒr2tj|d�}	nt|t	ƒrHt
|ƒdkrHtj|d |d d�}	d	|vrPd
|d	< z…|dv rÈ|r_|dt|ƒ 7 }t d|d	 tj¡r�d}
|durtt |¡}
| jj|||
||	|d�}nS|d	 dkr•| jj|||d||	|d�}n?|d	 dkr¬|d	= | jj|||d||	|d�}n(t|tƒrÀ|}
| jj|||
||	|d�}nd}td|d�‚| jj|||||	|d�}W n tjjyô } zd t|ƒjt|ƒ¡}td|d�‚d}~ww |�rt|ƒ}tj�r|j d¡|_t d|j¡ d|j  k�rdk�s!n t|d�‚|S )a°  Perform requests.

        :param method: http request method
        :param url: http request url
        :param query_params: query parameters in the url
        :param headers: http request headers
        :param body: request json body, for `application/json`
        :param post_params: request post parameters,
                            `application/x-www-form-urlencoded`
                            and `multipart/form-data`
        :param _preload_content: if False, the urllib3.HTTPResponse object will
                                 be returned without reading/decoding response
                                 data. Default is True.
        :param _request_timeout: timeout setting for this request. If one
                                 number provided, it will be total request
                                 timeout. It can also be a pair (tuple) of
                                 (connection, read) timeouts.
        )ÚGETÚHEADÚDELETEÚPOSTÚPUTÚPATCHÚOPTIONSz9body parameter cannot be used with post_params parameter.N)Útotalé   r   é   )ÚconnectÚreadzContent-Typezapplication/json)r3   r4   r5   r6   r2   ú?Újson)ÚbodyÚpreload_contentÚtimeoutÚheadersz!application/x-www-form-urlencodedF)ÚfieldsÚencode_multipartr?   r@   rA   zmultipart/form-dataTz°Cannot prepare a request message for provided
                             arguments. Please check that your arguments match
                             declared content type.)r   r   )rB   r?   r@   rA   z{0}
{1}Úutf8zresponse body: %séÈ   i+  )Ú	http_resp) ÚupperÚ
ValueErrorÚ
isinstanceÚsixÚPY3ÚintÚlongr)   ÚTimeoutÚtupleÚlenr   ÚreÚsearchÚ
IGNORECASEr=   Údumpsr+   ÚrequestÚstrÚApiExceptionÚ
exceptionsÚSSLErrorÚformatÚtyper   r   r	   ÚdecodeÚloggerÚdebugr   )r
   ÚmethodÚurlÚquery_paramsrA   r>   Úpost_paramsÚ_preload_contentÚ_request_timeoutr@   Úrequest_bodyÚrÚmsgÚer   r   r   rU   l   s¨   ÿ
ÿ
ûúú

û
ü€€þ
zRESTClientObject.requestc                 C   ó   | j d|||||d�S )Nr0   ©rA   rc   rd   ra   ©rU   ©r
   r`   rA   ra   rc   rd   r   r   r   r0   è   ó   üzRESTClientObject.GETc                 C   ri   )Nr1   rj   rk   rl   r   r   r   r1   ð   rm   zRESTClientObject.HEADc              
   C   ó   | j d|||||||d�S )Nr6   ©rA   ra   rb   rc   rd   r>   rk   ©r
   r`   rA   ra   rb   r>   rc   rd   r   r   r   r6   ø   ó   úzRESTClientObject.OPTIONSc              	   C   s   | j d||||||d�S )Nr2   )rA   ra   rc   rd   r>   rk   )r
   r`   rA   ra   r>   rc   rd   r   r   r   r2     s   ûzRESTClientObject.DELETEc              
   C   rn   )Nr3   ro   rk   rp   r   r   r   r3     rq   zRESTClientObject.POSTc              
   C   rn   )Nr4   ro   rk   rp   r   r   r   r4     rq   zRESTClientObject.PUTc              
   C   rn   )Nr5   ro   rk   rp   r   r   r   r5     rq   zRESTClientObject.PATCH)r   N)NNNNTN)NNTN)NNNTN)r   r   r   r   rU   r0   r1   r6   r2   r3   r4   r5   r   r   r   r   r   5   s6    
5
þ|
ÿ
ÿ
ÿ

ÿ	
ÿ

ÿ
ÿr   c                   @   s   e Zd Zddd„Zdd„ ZdS )rW   Nc                 C   sF   |r|j | _ |j| _|j| _| ¡ | _d S || _ || _d | _d | _d S r   )r   r   r	   r>   r   rA   )r
   r   r   rF   r   r   r   r   ,  s   
zApiException.__init__c                 C   s@   d  | j| j¡}| jr|d  | j¡7 }| jr|d  | j¡7 }|S )z#Custom error messages for exceptionz({0})
Reason: {1}
zHTTP response headers: {0}
zHTTP response body: {0}
)rZ   r   r   rA   r>   )r
   Úerror_messager   r   r   Ú__str__8  s   ÿÿzApiException.__str__)NNN)r   r   r   r   rs   r   r   r   r   rW   *  s    
rW   )Ú__doc__Ú
__future__r   Úior=   ÚloggingrQ   r!   r%   rJ   Úsix.moves.urllib.parser   r)   ÚImportErrorÚ	getLoggerr   r]   ÚIOBaser   Úobjectr   Ú	ExceptionrW   r   r   r   r   Ú<module>   s(   ÿ
 v