
    (hi                     X   d dl mZmZmZmZmZ d dlmZ d dlm	Z	 d dl
mZ d dlZd dlZd dlmZ  eddg	      Zej#                  d
       ed       ee      fdede	fd       Zej'                  d       ee      fde	fd       Zej+                  d       ee      fdede	fd       Zy)    )	APIRouterDependsstatus
UploadFileFile)JSONResponse)	UserLogin)get_current_active_userN)Pathz/filesFiles)prefixtagsz/upload-student-file.filesession_userc                   K   	 t        d      }|j                  dd       | j                  rt        | j                        j                  nd}t	        j
                          | }||z  }t        |d      5 }| j                          d {   }|j                  |       d d d        t              }t        t        j                  dd|| j                  t        |      || j                  dd	
      S 7 j# 1 sw Y   XxY w# t        $ r5}	t        t        j                   ddt        |	       d d	
      cY d }	~	S d }	~	ww xY ww)Nfiles/original_student_filesT)parentsexist_ok wb   zFile uploaded successfully)filenameoriginal_filename	file_path	file_sizecontent_typer   messagedatastatus_codecontent  zError uploading file: )r   mkdirr   suffixuuiduuid4openreadwritelenr   r   HTTP_201_CREATEDstrr   	ExceptionHTTP_500_INTERNAL_SERVER_ERROR)
r   r   
upload_dirfile_extensionunique_filenamer   bufferr"   r   es
             WC:\Users\jesus\OneDrive\Escritorio\proyecto_pie360\backend\app\backend\routers\files.pyupload_student_filer6      s8    
+
89
5 8<}}dmm,33"!ZZ\N>*:; 0	 )T" 	"f IIK'GLL!	"
 L	//7 /)-!$Y!*$($5$5

 	
 (	" 	",  
==3CF8<
 	

s`   EA4D 8C9C7C9"AD 6E7C99D>D 	E*D>8E9E>EEz/list-student-filesc           	      @  K   	 t        d      }|j                         st        t        j                  ddg d      S g }|j                         D ]k  }|j                         s|j                         }|j                  |j                  t        |      |j                  |j                  |j                  d       m t        t        j                  dd|d      S # t        $ r5}t        t        j                  dd	t        |       d d      cY d }~S d }~ww xY ww)
Nr      zNo files foundr   r    )r   r   r   created_datemodified_datezFiles retrieved successfullyr#   zError listing files: )r   existsr   r   HTTP_200_OKiterdiris_filestatappendnamer-   st_sizest_ctimest_mtimer.   r/   )r   	files_dirfilesr   	file_statr4   s         r5   list_student_filesrH   @   s    ,
78	!"..!/  "**, 		I  "%NN,	 )!$Y!*!2!2$-$6$6%.%7%7 		 **9
 	
  
==23q6(;
 	

sE   D9C D%C $A8C D	D&*DDDDDz/delete-student-file/{filename}r   c           	      j  K   	 t        d      | z  }|j                         st        t        j                  ddd d      S |j                          t        t        j                  ddd| id      S # t        $ r5}t        t        j                  d	d
t        |       d d      cY d }~S d }~ww xY ww)Nr   i  zFile not foundr   r    r8   zFile deleted successfullyr   r#   zError deleting file: )
r   r;   r   r   HTTP_404_NOT_FOUNDunlinkr<   r.   r/   r-   )r   r   r   r4   s       r5   delete_student_filerL   r   s     
"
788C	!"55!/   	**6#X.
 	
  
==23q6(;
 	

s@   B3<A2  B30A2 1B32	B0;*B+%B0&B3+B00B3)fastapir   r   r   r   r   fastapi.responsesr   app.backend.schemasr	   app.backend.auth.auth_userr
   osr&   pathlibr   files_routerpostr6   getrH   deleter-   rL        r5   <module>rY      s    @ @ * ) > 	  

 )*Cy%&=>/

/
/
 +/
b '(%&=>/
/
 )/
b 67 &&=>&
&
&
 8&
rX   