o
    š…<iÄ  ã                   @   s6   d dl Z d dlmZ G dd„ deƒZG dd„ dƒZdS )é    N)Úsettingsc                   @   s   e Zd ZdZdS )ÚEdefClientErroru)   Erreur gÃ©nÃ©rique pour les appels e-MCF.N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__© r   r   úHC:\Users\glodi\PycharmProjects\facturationDaniel\leon\dgi\edef_client.pyr      s    r   c                   @   sª   e Zd Zd$dd„Zdd„ Zdd„ Zdd	„ Zd
efdd„Zde	d
efdd„Z
de	fdd„Zde	fdd„Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zd d!„ Zd"d#„ ZdS )%Ú
EdefClientNc                 C   s4   |pt j d¡| _|pt j| _|ptt ddƒ| _d S )Nú/ÚEDEF_TIMEOUTé
   )r   ÚEDEF_BASE_URLÚrstripÚbase_urlÚEDEF_API_TOKENÚtokenÚgetattrÚtimeout)Úselfr   r   r   r   r   r	   Ú__init__   s   zEdefClient.__init__c                 C   s   d| j › �dddœS )NzBearer zapplication/json)ÚAuthorizationÚAcceptzContent-Type)r   ©r   r   r   r	   Ú_headers   s   
ýzEdefClient._headersc           	   
   K   sØ   | j › |› �}|  ¡ }| | di ¡¡ ztjd|||| jdœ|¤Ž}W n tjy8 } ztd|› �ƒ‚d }~ww |j	sZz| 
¡ }W n tyN   |j}Y nw td|j› d|› �ƒ‚z| 
¡ W S  tyk   |j Y S w )NÚheaders)ÚmethodÚurlr   r   u   Erreur de connexion Ã  e-MCF: zErreur e-MCF z: r   )r   r   ÚupdateÚpopÚrequestsÚrequestr   ÚRequestExceptionr   ÚokÚjsonÚ	ExceptionÚtextÚstatus_codeÚ
ValueError)	r   r   ÚpathÚkwargsr   r   ÚrespÚeÚdatar   r   r	   Ú_request   s<   ü
û€ÿ
ÿÿ

ÿzEdefClient._requestc                 C   ó   |   dd¡S )NÚGETú/api/invoice/©r.   r   r   r   r	   Úget_invoice_status9   s   zEdefClient.get_invoice_statusÚpayloadc                 C   s   | j dd|d�S )NÚPOSTr1   ©r$   r2   )r   r4   r   r   r	   Úcreate_invoice=   s   zEdefClient.create_invoiceÚuidc                 C   s   d|› d�}| j d||d�S )Nr1   z/CONFIRMÚPUTr6   r2   )r   r8   r4   r)   r   r   r	   Úconfirm_invoiceA   s   zEdefClient.confirm_invoicec                 C   s   d|› d�}|   d|¡S )Nr1   z/CANCELr9   r2   ©r   r8   r)   r   r   r	   Úcancel_invoiceF   s   zEdefClient.cancel_invoicec                 C   s   d|› �}|   d|¡S )Nr1   r0   r2   r;   r   r   r	   Úget_invoiceK   s   
zEdefClient.get_invoicec                 C   r/   )Nr0   z/api/info/statusr2   r   r   r   r	   Úinfo_statusR   ó   zEdefClient.info_statusc                 C   r/   )Nr0   z/api/info/taxGroupsr2   r   r   r   r	   Úinfo_tax_groupsU   r?   zEdefClient.info_tax_groupsc                 C   r/   )Nr0   z/api/info/invoiceTypesr2   r   r   r   r	   Úinfo_invoice_typesX   r?   zEdefClient.info_invoice_typesc                 C   r/   )Nr0   z/api/info/paymentTypesr2   r   r   r   r	   Úinfo_payment_types[   r?   zEdefClient.info_payment_typesc                 C   r/   )Nr0   z/api/info/clientTypesr2   r   r   r   r	   Úinfo_client_types^   r?   zEdefClient.info_client_typesc                 C   r/   )Nr0   z/api/info/referenceTypesr2   r   r   r   r	   Úinfo_reference_typesa   r?   zEdefClient.info_reference_typesc                 C   r/   )Nr0   z/api/info/itemTypesr2   r   r   r   r	   Úinfo_item_typesd   r?   zEdefClient.info_item_typesc                 C   r/   )Nr0   z/api/info/currencyRatesr2   r   r   r   r	   Úinfo_currency_ratesg   r?   zEdefClient.info_currency_rates)NNN)r   r   r   r   r   r.   r3   Údictr7   Ústrr:   r<   r=   r>   r@   rA   rB   rC   rD   rE   rF   r   r   r   r	   r
      s"    
!r
   )r    Údjango.confr   r%   r   r
   r   r   r   r	   Ú<module>   s   