o
    Q?hc                     @   s   d dl Z d dlmZmZmZ d dlmZmZ d dlm	Z	 dZ
dddd	Zd dlZG d
d deZddefddZdedefddZddedefddZdS )    N)RequestResponse	send_file)SERVER_TIMESTAMPdb)getUserzapplication/jsonzPOST, GET, OPTIONS, DELETE, PUTz"Content-Type, Authorization, x-uid*)zAccess-Control-Request-MethodszAccess-Control-Request-HeaderszAccess-Control-Allow-Originc                       sD   e Zd Zdi fdeddf fddZdd Zd	d
 Zdd Z  ZS )	API_Error  messagereturnNc                    s*   || _ t|| _|| _t |   dS )z New Error Instance N)r   intstatus_codemetasuper__init__to_dict)selfr   r   r   	__class__ G/var/www/html/riverr-enterprise-integrations-main/functions/Response.pyr      s   
zAPI_Error.__init__c                 C   s   t | j| j| jdS )z dict Error object )r   r   r   )dictr   r   r   r   r   r   r   r      s
   zAPI_Error.to_dictc                 C   s   t |  S )z  JSON serializable Error object )jsondumpsr   r   r   r   r   to_json   s   zAPI_Error.to_jsonc                 C   s   t |  | jttdS )Nstatusheadersmimetype)r   r   r   post_headersr    r   r   r   r   response    s   zAPI_Error.response)	__name__
__module____qualname__strr   r   r   r"   __classcell__r   r   r   r   r	      s
    r	   TFrequestc           
      C   s~  zo|j dkrtddttdW S t|j }||jr|jni  |j	
d|j	
d}t|}|s9|r9tdd||d	< |j	
d
|d< |j	
d|d< ||d< |rW||d< |r^| |W S | |}ttj|tddttdW S  ty }	 zt|	 tt  |	 W  Y d }	~	S d }	~	w ty }	 z$t|	 tt  tttdddt|	iddttdW  Y d }	~	S d }	~	ww )NOPTIONS    r   zx-uidzX-UidzAuthentication failed.i  currentUserzdomain-hostnamehostnamez	shop-nameshopnameuidid)default)r    r
   zInternal Server Errorerror)r   r   r   )methodr   r!   r    r   argsr   updater   r   getr   r	   r   r&   print	traceback
format_excr"   	Exception)
functionr(   r0   authRequiredsendFile
parametersr/   r,   dataer   r   r   sendResponse$   s6   
4rA   functionNameuserMessagec                 K   s>   t t| ||dd}|| td| td| || |S )Npython)	createdAtr/   rC   rB   serverLOGSERROR LOGGEDr   r   r5   r   
collectionaddr7   )r/   rB   rC   kwargsr2   r   r   r   	saveErrorI   s   
rM   c                 K   s@   t t| ||d|d}|| td| td| || |S )NrD   )rE   r/   rC   rB   rF   serverMessagePRIORITY_LOGSrH   rI   )r/   rB   rC   rN   rL   r2   r   r   r   priorityLoggerV   s   
rP   )NTF)N)r   flaskr   r   r   configs.firebaser   r   functions.Usersr   r    r!   r8   r:   r	   rA   r&   rM   rP   r   r   r   r   <module>   s    %