o
    㓝hW                     @   s   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 edeZeeZG dd deZeed	 ejd
dgddd ZdS )    )	Blueprintrequestjsonify)ResourceApi)ObjectId)ExamStudyMaterial)jwt_requiredexamsc                   @   s   e Zd Zdd ZdS )ExamListc                 C   s   t jddd}|sddg ddfS g }|D ]$}|t|j|j|jp%d|j|j	p+d|j
p/d|jp3d |j d	 q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exam r%   QD:\Internship2\StudyBuddy\EduRuby_flask\flask_backend-main\routes\exam_manager.pyget   s4   
zExamList.getN)__name__
__module____qualname__r'   r%   r%   r%   r&   r   
   s    r   z/exams_listz$/get_exam_materials/<string:exam_id>GET)methodsc              
   C   s   zVt | stddg ddfW S tj| dd }|s'tddg ddfW S d	d
 |jdD }|s?tddg ddfW S tj|d}dd
 |D }tdd|ddfW S  t	yw } ztddt
| g ddfW  Y d }~S d }~ww )Nr   zInvalid exam IDr   i  r   )r   r   zExam not found or inactivei  c                 S   s$   g | ]}|   rt|  qS r%   )stripisdigitint).0midr%   r%   r&   
<listcomp>@   s   $ z&get_exam_materials.<locals>.<listcomp>,z(No valid materials assigned to this examr   )Zid__inc                 S   s   g | ]	}|j |jd qS ))r   title)r   material_title)r0   Zmatr%   r%   r&   r2   K   s    r   z$Study materials fetched successfullyzAn error occurred: i  )r   is_validr   r   r   firstr   splitr	   	Exceptionr    )Zexam_idr$   Zmaterial_idsZ	materialsZmaterial_titleser%   r%   r&   get_exam_materials+   s\   
r;   N)flaskr   r   r   flask_restfulr   r   bsonr   models.examr   r	   utils.jwt_servicer
   r(   exams_bpZ	exams_apir   add_resourcerouter;   r%   r%   r%   r&   <module>   s    
