
    E|j                        d dl Z d dlZd dlmZmZmZmZ d dlmZ d dl	Z	d dl
mZ d dlmZmZ d dlmZ  ej"                  e      Z e       Z ed      Zej-                  d	       ej/                  d
       ed      fdefd       Zy)    N)	APIRouter
UploadFileFileHTTPException)Path)error_codes)MAX_FILE_SIZE_BYTESALLOWED_UPLOAD_CONTENT_TYPES)extract_from_imageuploadsT)exist_ok .filec                   K   | j                   t        vr+t        dt        j                  | j                    dd      | j                          d {   }t        |      t        kD  rt        dt        j                  dd      t        | j                  xs d      j                  }t        j                         j                   | }t        t         |z  d      5 }|j#                  |       d d d        d }| j                   j%                  d      r@	 t'        t)        j*                  |      j-                         | j                          d {   }d| | j                  | j                   t        |      |dS 7 ,# 1 sw Y   xY w7 ;# t.        $ r8}t0        j3                  d	| j                  | j                   ||
       Y d }~ud }~ww xY ww)Ni  z is not a supported file type)errormessage)status_codedetailz File exceeds the 10MB size limitr   wbzimage/z?[EXTRACTION_FAILED] status=500 file=%r contentType=%r detail=%s)exc_infoz/media/)urlfilenamecontentType	sizeBytesextractedInfo)content_typer
   r   r   UNSUPPORTED_FILE_TYPEreadlenr	   FILE_TOO_LARGEr   r   suffixuuiduuid4hexopen
UPLOAD_DIRwrite
startswithr   base64	b64encodedecode	Exceptionloggerr   )r   contentsextstored_namefextracted_infoexcs          4/var/www/html/ai-nims-dev/backend/app/api/uploads.pyupload_filer5      s     <<(>>dN_N_M``}K~
 	

 YY[ H
8}**(77Dfg
 	

 t}}"
#
*
*CZZ\%%&se,K	j;&	- 	 N##H-	Q#5f6F6Fx6P6W6W6Y[_[l[l#mmN &MM((]' + !  n 	Q LLZ\`\i\ikok|k|  B  MPL  Q  Q	Qsg   AGE?BG F2%G:F FF )GFGF 	G.GGGG)r)   loggingfastapir   r   r   r   pathlibr   r"   app.constantsr   app.core.constantsr	   r
   app.services.geminir   	getLogger__name__r-   routerr&   mkdirpostr5        r4   <module>rC      s}      > >   % P 2			8	$	)_
 
  $   R)-c "J " "rB   