o
    ʓh                     @   s>   d Z ddlZddlZddlmZ ddlmZ G dd dZdS )uJ   
Debug middleware для логирования всех запросов
    N)Request)Responsec                   @   s   e Zd Zdd Zdd ZdS )DebugMiddlewarec                 C   s
   || _ d S )N)app)selfr    r   1/var/www/html/aiguide_backend/debug_middleware.py__init__
   s   
zDebugMiddleware.__init__c              
      sH  |d dkrt ||}|jdkrdt|jv rtd td|j  tdt|j  | I d H   r|z$t	 
 }tdtj|d	d
d  tddd | D   W n  ty{ } ztd   td|  W Y d }~nd }~ww tdtd  td |d
 fdd}|}| |||I d H  d S )NtypehttpPUTzadmin/tableu!   
🔥 DEBUG: Incoming PUT requestu
   📍 URL: u   📋 Headers: u   📦 Body:    F)indentensure_asciiu   📊 Types: c                 S   s   g | ]\}}|t |jfqS r   )r
   __name__).0kvr   r   r   
<listcomp>   s    z,DebugMiddleware.__call__.<locals>.<listcomp>u   📦 Raw body: u   ❌ JSON parse error: u
   ⏰ Time: z%H:%M:%Sz<============================================================c                      s"   sdd ddS  I d H S )NTzhttp.requestF)r
   body	more_bodyr   r   r   	body_sentoriginal_receiver   r   new_receive+   s
   z-DebugMiddleware.__call__.<locals>.new_receive)r   methodstrurlprintdictheadersr   jsonloadsdecodedumpsitems	Exceptiontimestrftimer   )r   scopereceivesendrequest	json_dataer   r   r   r   __call__   s4   

 	zDebugMiddleware.__call__N)r   
__module____qualname__r	   r/   r   r   r   r   r   	   s    r   )__doc__r!   r'   fastapir   fastapi.responsesr   r   r   r   r   r   <module>   s    