o
    tBh                     @   sp   d Z dZdZdZd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 ddlmZ G dd deZdS )z
WooCommerce API Class
zwoocommerce-apiz3.0.0zClaudio Sanches @ AutomatticMIT    )request)dumps)time)OAuth)HTTPBasicAuth)	urlencodec                   @   sb   e Zd ZdZdd Zdd Zdd Zdd	 ZdddZdd Z	dd Z
dd Zdd Zdd Zd
S )APIz API Class c                 K   sz   || _ || _|| _|dd| _|dd| _|  | _|dd| _|dd| _	|dd	| _
|d
dt | _d S )Nwp_apiTversionzwc/v3timeout   
verify_sslquery_string_authF
user_agentzWooCommerce-Python-REST-API/)urlconsumer_keyconsumer_secretgetr
   r   _API__is_sslis_sslr   r   r   __version__r   )selfr   r   r   kwargs r   f/var/www/html/riverr-enterprise-integrations-main/venv/lib/python3.10/site-packages/woocommerce/api.py__init__   s   
zAPI.__init__c                 C   s   | j dS )z Check if url use HTTPS https)r   
startswith)r   r   r   r   __is_ssl#   s   zAPI.__is_sslc                 C   sF   | j }d}|ddu r| d}| jrd}| | d| j d| S )z Get URL for requests zwc-api/Fzwp-json)r   endswithr
   r   )r   endpointr   apir   r   r   	__get_url'   s   
zAPI.__get_urlc                 K   s0   t || j| j| j||dtt d}| S )z Generate oAuth1.0a URL oauth_timestamp)r   r   r   r   methodr%   )r   r   r   r   r   intr   get_oauth_url)r   r   r&   r   oauthr   r   r   __get_oauth_url4   s   	zAPI.__get_oauth_urlNc           
      K   s   |du ri }|  |}d}| j dd}| jdu r&| jdu r&t| j| j}n*| jdu r;| jdu r;|| j| jd nt|}	| d|	 }| j	||fi |}|durat
|ddd	}d
|d< td||| j|||| j|d|S )z Do requests Nzapplication/json)z
user-agentacceptTF)r   r   ?)ensure_asciizutf-8zapplication/json;charset=utf-8zcontent-type)r&   r   verifyauthparamsdatar   headersr   )_API__get_urlr   r   r   r   r   r   updater   _API__get_oauth_url
jsonencodeencoder   r   r   )
r   r&   r"   r1   r0   r   r   r/   r2   encoded_paramsr   r   r   	__requestA   s@   

	zAPI.__requestc                 K      | j d|dfi |S )z Get requests GETN_API__requestr   r"   r   r   r   r   r   h      zAPI.getc                 K      | j d||fi |S )z POST requests POSTr<   r   r"   r1   r   r   r   r   postl   r?   zAPI.postc                 K   r@   )z PUT requests PUTr<   rB   r   r   r   putp   r?   zAPI.putc                 K   r:   )z DELETE requests DELETENr<   r>   r   r   r   deletet   r?   z
API.deletec                 K   r:   )z OPTIONS requests OPTIONSNr<   r>   r   r   r   optionsx   r?   zAPI.options)N)__name__
__module____qualname____doc__r   r   r3   r5   r=   r   rC   rE   rG   rI   r   r   r   r   r	      s    
'r	   N)rM   	__title__r   
__author____license__requestsr   jsonr   r6   r   woocommerce.oauthr   requests.authr   urllib.parser   objectr	   r   r   r   r   <module>   s   