
    mh                     V   d dl Z d dlmZ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mZ d dlmZ d dlmZ d d	lmZ  e       Z e	         e j2                  d
d      Zej7                  d       ed       ed       ed       ee      fdededededef
d       ZejA                  d       ee      fdedefd       Z!ejE                  d       ed       ed       ed       ee      fdededededef
d       Z#ejI                  d       ee      fdedefd       Z%y)    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                    |\  }}|j                  t              j                  t        j                  | k(        j	                         }|st        dd      ||| d}|rt        j                  j                  |j                        d   }	t        j                          |	 }
t        j                  j                  t        |
      }t        |d      5 }|j                  |j                   j#                                d d d        ||d<   t%        di |}|j'                  |       |j)                          |j+                  |       |S # 1 sw Y   MxY w)	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                 a/Users/theessential/Documents/Github/KofAcademy/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                     |\  }}|j                  t        t              j                  t        j                  | k(              }|j                         }|st        dd      |S )Nr   Module not found)executer   r   wherer!   scalar_one_or_noner   r:   r   r1   r   resultr7   s         r8   
get_modulerB   ?   sU    IBZZv,,VYY)-CDEF&&(FC!344M    c                    |\  }}|j                  t              j                  t        j                  | k(        j	                         }|st        dd      |||_        |||_        |rt        j                  j                  |j                        d   }t        j                          | }	t        j                  j                  t        |	      }
t!        |
d      5 }|j#                  |j$                  j'                                d d d        |
|_        |j+                          |j-                  |       |S # 1 sw Y   3xY w)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    *D<<Ec                 8   |\  }}|j                  t        t              j                  t        j                  | k(              }|j                         }|st        dd      t        j                  |_	        |j                          |j                  |       ddiS )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 $ $ (	 " $BII17; +, c$ZT
!"56""" " 	"
 " -"L "#5<=P5Q # U  $ "# d$ZT
!"56      	 
   $ H %&8?@S8T 	6S 	6 	6 '	6rC   