U
    Vc                     @   s@   d dl mZ d dlmZ ddlmZ dd Zdd Zd	d
 ZdS )    )serializers)dic_validetor   )confc                 C   sX   | j tjs0tdddd tjD  | jdtj krTtdtj d| S )NThe file format must be , c                 S   s   g | ]}|d d qS r   N .0itemr	   r	   1/var/www/wikiazma_server/doc_parser/validators.py
<listcomp>
   s     z'docx_file_validator.<locals>.<listcomp>i   zThe maximum file size is z MB)	nameendswithr   Zallowed_formats_for_docx_filesr   ValidationErrorjoinsizeZmaximum_docx_file_size_MBfiler	   r	   r   docx_file_validator   s    r   c                 C   s4   | j tjs0tdddd tjD  | S )Nr   r   c                 S   s   g | ]}|d d qS r   r	   r
   r	   r	   r   r      s     z'data_file_validator.<locals>.<listcomp>)r   r   r   Zallowed_formats_for_data_filesr   r   r   r   r	   r	   r   data_file_validator   s
    r   c              
   C   sr  dd }t | tkrtd| D ]H}dtd}dtd}dtd}dtd}d	td}d
td}dtd}	t||||g||||	gddddd dtd}
t|d |
gddddd ||d d  d	|krdtd}t|d	 |gd	dd	dd |d	r||d	 d  d|kr"|d D ]J}dtd}dtd}dt	d}t||||gddddd ||d  q q"| S )Nc                 S   s   d S )Nr	   )inputr	   r	   r   _html_validator   s    z>json_data_parser_input_data_validator.<locals>._html_validatorzinvalid format (list)index)keytypetextquestionchoicesanswertagsmetacontentFT)required_itemsoptional_items	error_keymanycontainer_nameraise_error_for_unexpected_keyhtml)r$   r&   r'   r(   r)   )r%   r&   r'   r(   r)   
is_correctchoice)
r   listr   r   intstrdictr   getbool)r   r   r   r   r   r   r   r    r!   r"   Zquestion_htmlZanswer_htmlr,   Zchoice_htmlZchoice_indexZchoice_is_correctr	   r	   r   %json_data_parser_input_data_validator   s    
    
    r3   N)	rest_frameworkr   utils.validatorsr    r   r   r   r3   r	   r	   r	   r   <module>   s
   