o
    i                     @   sT   d dl Z d dlZd dlmZmZmZ d dlZd dlmZ dd Z	dd Z
dd	 ZdS )
    N)	send_filejsonifyrequest)connect_to_databasec               
   C   s6  h d} h d}dt jvsdt jvrtddidfS t jd }t jd }t jdd	 }||vr?tdd
d| idfS |jdkrLtddidfS d}t|	 }|
d ||kretddidfS tj|jd dd   }|| vrtddd|  idfS |	 }|
d zzXt }	|	 }
|
d|f |
 }|d u rtddddfW W |
  |	  S |
d||f d}|
|||j|||f |	  td|j|ddfW W |
  |	  S  ty } ztddt| idfW  Y d }~W |
  |	  S d }~ww |
  |	  w )N>   ZjpgZpdfpngjpegZgif>   Zlogo	signatureprofileotherfileuser_iderrorzFile or user_id missingi  purposer	   z#Invalid purpose. Allowed purposes: z,  zNo selected filei   r   zFile size exceeds limit of 1 MB   z&File type not allowed. Allowed types: z!SELECT * FROM users WHERE id = %szUser does not existT)messager     <DELETE FROM file_uploads WHERE user_id = %s AND purpose = %sz
            INSERT INTO file_uploads (user_id, filename, filevalue, file_type, purpose)
            VALUES (%s, %s, %s, %s, %s)
        zFile uploaded successfully)r   filenamer      An error occurred:   )r   filesformr   getlowerjoinr   lenreadseekospathsplitextr   cursorexecutefetchoneclosecommit	Exceptionstr)Zallowed_extensionsZallowed_purposesr   r   r   Zmax_file_size	file_sizeZfile_extension
file_value
connectionr#   userquerye r0   M/Users/harjaapdhillon/Desktop/newidea/medvista_backend/Services/UploadFile.pyupload_file   sb   






&

r2   c              
   C   s  t jdd}zxzRt }| }d}||| |f | }|rB|\}}t|}t	
|\}	}
t||	d|dW W |  |  S tdd|  d| d	id
fW W |  |  S  ty } ztdt|idfW  Y d }~W |  |  S d }~ww |  |  w )Nr   r	   zRSELECT filename, filevalue FROM file_uploads WHERE user_id = %s AND  purpose = %s F)mimetypeas_attachmentdownload_namer   No images found for user_id  with purpose ""r   r   r   )r   argsr   r   r#   r$   r%   ioBytesIO	mimetypes
guess_typer   r&   r   r(   r)   )r   r   r,   r#   r.   resultr   r+   Zfile_stream	mime_type_r/   r0   r0   r1   	get_imageO   s:   


 
 

rA   c              
   C   s  t jdd}zrzIt }| }d}||| |f |  |jdkr9tdd| didfW W |	  |	  S tdd	|  d
| didfW W |	  |	  S  t
yy } ztddt| idfW  Y d }~W |	  |	  S d }~ww |	  |	  w )Nr   r	   r   r   r   zImage with purpose "z" deleted successfullyr   r6   r7   r8   r   r   r   r   )r   r9   r   r   r#   r$   r'   rowcountr   r&   r(   r)   )r   r   r,   r#   r.   r/   r0   r0   r1   delete_imageo   s,   

 
&

rC   )r<   r:   flaskr   r   r   r    confr   r2   rA   rC   r0   r0   r0   r1   <module>   s    G 