
    3i	                     6    d dl mZ d dlZd dlmZ d dlmZ d Zy)    wrapsN)HTTPException)get_db_connectionc                       fd}|S )Nc                 2     t                fd       }|S )Nc                  `   |j                  d      }|s | i |S d }d }d }d }	 t               }|j                         }|j                  d|f       |j	                         }|st        dd      |d   }|j                         D 	ci c]  \  }}	|dk7  s||	 }}}	d}
|t        j                  |      df}|j                  |
|       |j                           | i |}d	}
t        j                  |      |t        j                  |      f}|j                  |
|       |j                          ||r|j                          |r|j                          S S c c}	}w # t        $ r}|r^|r\d
}
dt        j                  dt        |      i      |t        j                  |      f}|j                  |
|       |j                          dd l}d dt        |       d|j                          }t        d|      d }~ww xY w# |r|j                          |r|j                          w w xY w)Napi_idz&SELECT id FROM users WHERE app_id = %si  zInvalid API ID)status_codedetailr   zbINSERT INTO api_logs (user_id, api_endpoint, request_payload, status_code) VALUES (%s, %s, %s, %s)   zkUPDATE api_logs SET response_payload = %s WHERE user_id = %s AND api_endpoint = %s AND request_payload = %sz}UPDATE api_logs SET status_code = %s, response_payload = %s WHERE user_id = %s AND api_endpoint = %s AND request_payload = %si  errorz	Error in z: 
)getr   cursorexecutefetchoner   itemsjsondumpscommitclose	Exceptionstr	traceback
format_exc)argskwargsr
   db_connectionr   user_idrequest_payloaduserkvsqlvalresponseer   error_detailendpoint_namefuncs                   D:\jyotish\api_logger.pywrapperz0log_api_call.<locals>.decorator.<locals>.wrapper   s(   ZZ)FT,V,, MFG"O)* 1 3&--/G&S('C@PQQq'4:LLN"TNDAqa8m1a4N"Tztzz//JCPsC($$&00 Dzz(+WmTZZP_E`asC($$& LLN !'') != #U   	Jv ZC

GSV+< =wW[WaWabqWrsCNN3,!((* !*=/CF82iFZFZF\E]^#LII	J LLN !'') !s>   A$E" 
EEBE" E" "	H+BG>>HH 'H-r   )r+   r-   r*   s   ` r,   	decoratorzlog_api_call.<locals>.decorator   s!    	t3	* 
3	*h      )r*   r.   s   ` r,   log_api_callr1      s    6n r/   )	functoolsr   r   fastapir   databaser   r1   r0   r/   r,   <module>r5      s      ! &8r/   