B
    bEfx                 @   sd   d dl T d dlmZ d dlmZmZ d dlmZ d dlm	Z	 G dd de
jjZG dd	 d	e	Zd
S )    )*)Response)dumpsloads)DeskApi)ApiViewc               @   s,   e Zd ZdZejjdd Zedd Z	dS )HelpdeskView/c             C   s   |   }| dS )Nz
index.html) _get_or_create_person_from_loginrender)selfperson r   !./modules/helpdesk/views/index.pyget   s    zHelpdeskView.getc              C   sL   d } t jrHtjjt jd} | sHtjt jdd t jt jdd} |   | S )N)login@r   F)namer   ZemailZ
user_local)gr   ZmodelsZ	CmfPersonr   splitZsave)r   r   r   r   r
      s    z-HelpdeskView._get_or_create_person_from_loginN)
__name__
__module____qualname____url__cmfviewsactionr   staticmethodr
   r   r   r   r   r      s   r   c               @   s0   e Zd ZdZejjdd Zejjdd ZdS )HelpdeskApiViewz/deskapic          	   C   s<  t js| ddS t dt jjj d ttj}d|krNt	| | 
dS d|kr`| 
dS |d | _|d	d
}|t _|dpi }|dpi }|r||d< |dpg }|dd }|r||d< |dd }|r||d< |dd }|r||d< |dd }	|	r|	|d< |di t _|dd }
|
rD|
|d< td|d}|dd }|d}|d }g }y|jddd\}}W n tk
r   | | jS X ytt|}W n tk
r   d }Y nX |d k	r&|||}tj||d}|  |j|j }}| j||d | j||dd}|S | | j ||dS )Ni  u   Нет правzAPI request start ()methodzNo method specifiedcallidzNo callid specifiedjsurl kwargsfilterargsfieldssliceorder_bygroup_byflagsno_cacheu)   no_cache запрещен go to spec0 osv
no_jscacheno_metacache_id.   )maxsplit)r.   F)Z
invalidateZorjson_)proc_cls_nameproc_method)r   Zcurrent_person_errordebugcodevaluer   ZrequestdataprintZinvalid_requestr!   r   r"   r+   	Exceptionr   
ValueErrorZmethod_not_foundgetattrr   AttributeErrorZcmfutilZCmfResultSplittermetaresultZresponse_ok)r   Zjson_resr"   r$   Z_filterr&   r'   r(   r)   r*   r,   r-   r.   r/   r    Zinvalidate_listr3   r4   r@   Zsplitterr?   Zresult_dictZrespr   r   r   post#   st    








zHelpdeskApiView.postc             C   s
   |  dS )Nz
index.html)r   )r   r   r   r   r   r   s    zHelpdeskApiView.getN)	r   r   r   r   r   r   r   rA   r   r   r   r   r   r       s   Or   N)Zcmf.includeZflaskr   Zujsonr   r   Zmodules.helpdesk.api.deskapir   Zmodules.api.views.indexr   r   r   ZBaseViewr   r   r   r   r   r   <module>   s   