U
    YŸHgÑ
  ã                   @   s&   d dl mZ d dlZG dd„ dƒZdS )é    )Úabsolute_importNc                
   @   sN   e Zd Zejejejejejej	ej
ejejdœ	Zdd„ Zdd„ Zdd„ ZdS )	ÚUserAttributeService)	ú+ú-ú<z<=ú>z>=ú=ÚorÚandc                 C   s   | j  |¡}|sdS |||ƒS )NF©Úoperator_dictÚget)ÚselfÚuser_attributeÚoperator_for_conditionÚvalueÚoperator_object© r   úO/var/www/dostadmin/dostadmin/services/user_attributes/user_attribute_service.pyÚprocess_condition   s    z&UserAttributeService.process_conditionc                 C   s^   d }d}d }|sdS |D ]@}|d kr(|}|r<|||ƒ}d}q| j  |¡r| j  |¡}d}q|S )NFTr   )r   ÚresultsÚfinal_resultZperform_operationr   Úoperandr   r   r   Úprocess_results_list   s    
z)UserAttributeService.process_results_listc                 C   sÊ   g }|D ]¶}g }|D ]Œ}|  d¡}|  di ¡  d¡}|  di ¡  d¡}	|  d¡rb| |  d¡¡ q|  d¡r~| |  d¡¡ qt||ƒ}
|  |
||	¡}| |¡ qt|ƒdkr| |  |¡¡ q|  |¡S )NÚoperatorr   r   r   Znode_join_conditionÚjoin_conditionr   )r   ÚappendÚgetattrr   Úlenr   )r   Úuser_attributesÚconditions_listZnode_condition_result_listZnode_conditionZsub_condition_results_listZsub_conditionr   Ú	attributeZattribute_valuer   Úresultr   r   r   Ú*is_user_attribute_fulfilling_the_condition.   s:    

ÿ
ÿ
  ÿÿz?UserAttributeService.is_user_attribute_fulfilling_the_conditionN)Ú__name__Ú
__module__Ú__qualname__r   ÚaddÚsubÚltÚleÚgtÚgeÚeqÚor_Úand_r   r   r   r#   r   r   r   r   r      s   ÷r   )Ú
__future__r   r   r   r   r   r   r   Ú<module>   s   