
    ̜h@                     f   S SK r S SKJrJrJrJrJrJr  S SKJ	r	  S SK
Jr  S SKJr  S SKrS SKJr  S SKJr  S SKJr  S S	KJr  \" 5       r\	" 5         \ R2                  " S
S5      r\R7                  S5      \" S5      \" S5      \" S5      \" \5      4S\S\S\S\S\4
S jj5       r\RA                  S5      \" \5      4S\S\4S jj5       r!\RE                  S5      \" S5      \" S5      \" S5      \" \5      4S\S\S\S\S\4
S jj5       r#\RI                  S5      \" \5      4S\S\4S jj5       r%g)    N)	APIRouterDependsHTTPExceptionFile
UploadFileForm)"disable_installed_extensions_check)check_user_is_admin)select)GeneralState)Module)Course)adminFILE_STORAGE_PATHfilesz/courses/{course_id}/modules.	course_idtitle	quizCountimagedependenciesc                    Uu  pVUR                  [        5      R                  [        R                  U :H  5      R	                  5       nU(       d
  [        SSS9eUUU S.nU(       a  [        R                  R                  UR                  5      S   n	[        R                  " 5        U	 3n
[        R                  R                  [        U
5      n[        US5       nUR                  UR                   R#                  5       5        S S S 5        XS'   [%        S0 UD6nUR'                  U5        UR)                  5         UR+                  U5        U$ ! , (       d  f       NQ= f)	N  zCourse not foundstatus_codedetail)r   r   r      wbr    )queryr   filteridfirstr   ospathsplitextfilenameuuiduuid4joinr   openwritefilereadr   addcommitrefresh)r   r   r   r   r   dbr   coursemodule_dataextr&   filepathfmodules                 CD:\kofCorporation\kof-academy-backend\app\routers\admins\modules.pycreate_moduler9      s    IB XXf$$VYY)%;<BBDF4FGG K ggu~~.q1jjl^C5)77<< 18<(D!QGGEJJOO%& "'G"k"FFF6NIIKJJvM "!s   *E
Ez/modules/{module_id}	module_idc                     Uu  p#UR                  [        [        5      R                  [        R                  U :H  5      5      nUR                  5       nU(       d  [        SS5      eU$ )Nr   Module not found)executer   r   wherer!   scalar_one_or_noner   r:   r   r1   r   resultr7   s         r8   
get_modulerB   ?   sS    IBZZv,,VYY)-CDEF&&(FC!344M    c                    Uu  pVUR                  [        5      R                  [        R                  U :H  5      R	                  5       nU(       d
  [        SSS9eUb  Xl        Ub  X'l        U(       a  [        R                  R                  UR                  5      S   n[        R                  " 5        U 3n	[        R                  R                  [        U	5      n
[!        U
S5       nUR#                  UR$                  R'                  5       5        S S S 5        Xl        UR+                  5         UR-                  U5        U$ ! , (       d  f       N7= f)Nr   r<   r   r   r   )r   r   r    r!   r"   r   r   r   r#   r$   r%   r&   r'   r(   r)   r   r*   r+   r,   r-   r   r/   r0   )r:   r   r   r   r   r1   r   r7   r4   r&   r5   r6   s               r8   update_modulerE   I   s     IB XXf$$VYY)%;<BBDF4FGG $ ggu~~.q1jjl^C5)77<< 18<(D!QGGEJJOO%& "IIKJJvM "!s   '*E
Ec                 @   Uu  p#UR                  [        [        5      R                  [        R                  U :H  5      5      nUR                  5       nU(       d  [        SS5      e[        R                  Ul	        UR                  5         UR                  U5        SS0$ )Nr   r<   messagezModule deleted successfully)r=   r   r   r>   r!   r?   r   r   DELETEDstater/   r0   r@   s         r8   delete_modulerJ   n   s|    IBjj--fii9.DEFF&&(FC!344''FLIIKJJv455rC   )&r#   fastapir   r   r   r   r   r   fastapi_pagination.utilsr	   app.utils.authentificationr
   sqlalchemy.futurer   r'   app.enums.general_stater   app.models.moduler   app.models.courser   app.schemasr   schemasroutergetenvr   postintstrtupler9   getrB   putrE   deleterJ   r   rC   r8   <module>r]      s   	 M M G : $  0 $ $ (	 " $II17; +, c$ZT
!"56""" " 	"
 " -"L "#5<=P5Q # U  $ "# d$ZT
!"56      	 
   $ H %&8?@S8T 	6S 	6 	6 '	6rC   