
    iX                         d dl mZmZmZmZ d dlmZ d dlmZ d dl	m
Z
mZ  e       Zej                  d       ed      fdedefd	       Zej!                  d      defd
       Zy)    )	APIRouterFileHTTPException
UploadFile)ensure_known_session)ValidationError)get_server_loggerLogTypez/api/uploads/{session_id}.
session_idfilec           	      
  K   	 t        | d      }	 |j                  j                  | |       d {   }|j                  }|j                  |j                  |j                  |j                  d
S # t        $ r}t        dt        |            d }~ww xY w7 f# t        $ r t        dd      t        $ rH}t               }|j                  dt        j                  | t        |             t        dd	      d }~ww xY ww)NFrequire_connection  status_codedetailzSession not connectedzFailed to save attachment)log_typer   errori  zFailed to store attachment)attachment_idname	mime_typesize)r   r   r   strattachment_servicesave_upload_file	Exceptionr	   r   r
   REQUESTrefr   r   r   r   )r   r   managerexcrecordloggerr   s          B/Users/bowang/.openclaw/workspace/ChatDev/server/routes/uploads.pyupload_attachmentr%   	   s     >&zeLR11BB:tTT **C**]]	 #  >CH==> U M4KLL R"$'__!c(	 	 	
 4PQQRsU   DA1 B BB ;D1	B:BBDB D 8AC;;D  Dc                    K   	 t        | d      }|j                  j                  |       }d|iS # t        $ r}t        dt        |            d }~ww xY ww)NFr   r   r   attachments)r   r   r   r   r   list_attachment_manifests)r   r    r!   manifests       r$   list_attachmentsr*   &   s\     >&zeL ))CCJOH8$$  >CH==>s$   A0 A	AAAAN)fastapir   r   r   r   server.stater   utils.exceptionsr   utils.structured_loggerr	   r
   routerpostr   r%   getr*        r$   <module>r4      sq    > > - , >	()@DS	  :  *8 '(%s % )%r3   