
    6h                     4   d dl mZmZmZ d dlmZmZ d dlmZ d dl	m
Z
mZ d dlmZ d dlmZ  ede      Z ee      Z G d d	e      Zej)                  ed
       ej+                  ddg      ed               Zej+                  ddg      ed               Zy)    )	Blueprintrequestjsonify)ResourceApi)ObjectId)ExamStudyMaterial)SubExam)jwt_requiredexamsc                       e Zd Zed        Zy)ExamListc                    t        j                  d      j                  d      }|sddg ddfS g }|D ]  }|j                  t	        |j
                        |j                  |j                  xs d|j                  |j                  xs d|j                  xs d|j                  xs d |j                  j                         d	        d
d|ddfS )N   )statusexam_positionfalsezNo exams list available yetr   messagedata    )id
exam_titleexam_descriptionr   iconalloted_materialsr   created_datetruezExam list fetched successfully)r	   objectsorder_byappendstrr   r   r   r   r   r   r   r   	isoformat)selfr   	exam_listexams       //var/www/html/eduruby.in/routes/exam_manager.pygetzExamList.get   s    A&//@!8 	  	 
	D$''l"oo$($9$9$?R++		R%)%;%;%Ar!%!3!3!;t $ 1 1 ; ; =	 	
	 7
 	 	    N)__name__
__module____qualname__r   r*    r+   r)   r   r      s     r+   r   z/exams_listz/get_sub_exams/<string:exam_id>GET)methodsc                 X   	 t        j                  |       st        ddg d      dfS t        j                  | d      j                  d      }|st        ddg d      d	fS g }|D ]  }|j                  t        |j                        |j                  xs d
|j                  |j                  xs d
|j                  |j                  |j                  j                         d        t        dd|d      dfS # t         $ r'}t        ddt        |       g d      dfcY d }~S d }~ww xY wNr   zInvalid exam IDr   i  r   )exam_idr   positionz No sub-exams found for this exami  r   )r   r   sub_exam_titlesub_exam_descriptionr   r5   r   r    zSub-exams fetched successfullyr   zAn error occurred: i  r   is_validr   r   r!   r"   r#   r$   r   r   r6   r7   r   r5   r   r%   	Exceptionr4   sub_exam_listresultsub_exames        r)   get_sub_examsr@   ,   s`   '  )!,  	   BKKJW!=  	  % 		HMM(++& +"*"9"9(0(E(E(K"//$-- ( 5 5 ? ? A 		 7
  	 	
  ,SVH5
  	 	)   %C9 8C9 !BC9 9	D)D$D)$D)z$/get_exam_materials/<string:exam_id>c                 X   	 t        j                  |       st        ddg d      dfS t        j                  | d      j                  d      }|st        ddg d      d	fS g }|D ]  }|j                  t        |j                        |j                  xs d
|j                  |j                  xs d
|j                  |j                  |j                  j                         d        t        dd|d      dfS # t         $ r'}t        ddt        |       g d      dfcY d }~S d }~ww xY wr3   r8   r;   s        r)   get_exam_materialsrC   X   s`   %  )!,  	   BKKJW!=  	 
 % 		HMM(++& +"*"9"9(0(E(E(K"//$-- ( 5 5 ? ? A 		 7
  	 	
  ,SVH5
  	 	rA   N)flaskr   r   r   flask_restfulr   r   bsonr   models.examr	   r
   models.sub_examr   utils.jwt_servicer   r,   exams_bp	exams_apir   add_resourcerouter@   rC   r/   r+   r)   <module>rN      s    - - '  + # *Wh'M	x > 
  x /	1E7C(  D(T 
6H&  I&r+   