o
    µQ?h_  ã                   @   s`   d dl Z d dlZd dlmZ d dlmZmZ d dlmZ dd„ Z	de
fdd	„Zd
efdd„ZdS )é    N)ÚRequest)ÚSERVER_TIMESTAMPÚdb)Ú	API_Errorc                 C   s*   t  d¡ d|  ¡ ¡ }|jr| ¡ S i S )NÚpaymentPlatformsCredentialsÚSTRIPE)r   Ú
collectionÚdocumentÚgetÚexistsÚto_dict)ÚenterpriseIdÚref© r   úP/var/www/html/riverr-enterprise-integrations-main/functions/Webhooks/Invoices.pyÚgetWebhookSecret
   s   r   Úparamsc                 C   s  |   d¡}|  d¡|  d¡|  d¡|  d¡f\}}}}d}t d¡ d| ¡  ¡ }|jr|j d	¡ d
¡}| ¡ }|  d¡}	|	t_t	tj
j|g d¢dt	||||ddƒ}
t	d
|
  d¡|
  d¡|
  d¡|
  d¡|
  d¡|
  d¡tt||d}
|j|
dd |
S tddƒ‚)NÚcurrentUserÚuidÚemailÚdisplayNamer   z3https://enterpriseapi1.riverr.app/webhooks/invoicesr   r   ÚwebhooksÚinvoiceÚapiKey)úinvoice.paidúinvoice.payment_succeededúinvoice.updatedÚ )r   r   Únamer   )ÚurlÚenabled_eventsÚdescriptionÚmetadataÚidr!   r    r   Úsecretr"   )r#   Ú	webhookIdr!   Úeventsr   r$   r"   Ú	createdAtÚ	updatedAtr   r   T)ÚmergezStripe API Keys not saved.i”  )r
   r   r   r	   r   Ú	referencer   ÚstripeÚapi_keyÚdictÚWebhookEndpointÚcreater   Úsetr   )r   Úuserr   r   r   r   ÚendpointÚstripeCredsÚ
webhookRefr   Úwebhookr   r   r   ÚcreateInvoiceWebhook   sH   
,
üüõ
r6   Úrequestc              
   C   s¤  t t | j¡ƒ}| di ¡ di ¡}t d¡}|rÌ| d¡}t|ƒ}| j d¡}| j dd ¡}d }d }zt	j
 ||| d¡¡}W n& tyU }	 z	t|	ƒ tdd	ƒ‚d }	~	w t	jjyf   td
ƒ tdd	ƒ‚w tdj|j|jdƒ |jdks|jdks|jdkrÆ|jj}| d¡}|r¿| d¡}
|
r¸| d¡dk}t}t d¡ |
¡}| t ||r¬|nd |d¡ td|
ƒ ntd|jƒ ntd|jƒ ntd|jƒ t dddS )NÚdataÚobjectr"   r   zutf-8zStripe-Signaturer$   zError while decoding event!i  zInvalid signature!ÚBad_signaturez$Received event: id={id}, type={type})r#   Útyper   r   r   Ú	invoiceIdÚstatusÚpaidÚinvoices)r>   ÚpaidAtr(   zINVOICE UPDATED :zNO INVOICE IDzNO METADATAzUNHANDLED EVENTTéÈ   )Úsuccessr=   )r-   ÚjsonÚloadsr8   r
   r9   r   ÚdecodeÚheadersr+   ÚWebhookÚconstruct_eventÚ
ValueErrorÚprintr   ÚerrorÚSignatureVerificationErrorÚformatr#   r;   r   r   r   r	   Úupdate)r7   Úbodyr   r"   r   ÚwebhookCredsÚpayloadÚreceived_sigÚeventÚer<   r>   r@   r   r   r   r   ÚstripeInvoiceWebhook7   sT   

ÿ
€
þÿÿ

rU   )rC   r+   Úflask.wrappersr   Úconfigs.firebaser   r   Úfunctions.Responser   r   r-   r6   rU   r   r   r   r   Ú<module>   s    '