
    Y~h                     T    d dl Z d dlmZ d dlT d dlmZ  G d dej                  ZdS )    N)Response)*)cmf_webhookc                   X    e Zd Zed             Zedd            Zed             Zd ZdS )
CmfWebhookc                    t                               dd          5  t          j                            d          }|s/t                              ddd                                          }d d d            n# 1 swxY w Y   |S )	Nz&CmfLock:CmfWebhook:create_person_group   )timeoutwebhook)codeTu   Webhook группа)r   systemname)cmfutilCmfLockmodelsCmfPersonGroupgetsave)clsgroups     *./modules/automation/models/cmf_webhook.pywebhook_person_groupzCmfWebhook.webhook_person_group
   s    __FPR_SS 	o 	o)--9-==E o--9TPf-ggllnn	o 	o 	o 	o 	o 	o 	o 	o 	o 	o 	o 	o 	o 	o 	o s   AA;;A?A?Nc                    t           j                            d          }|rct          j                            |          }t          j                            ||          }t                              d| d| d           |S d S )Ntoken)webhook_token_hashfieldsz CmfWebhook.token_person: person(z) by token_hash())requestargsr   r   	CmfPerson
hash_tokengdebug)r   r   r   
token_hashtoken_persons        r   get_token_personzCmfWebhook.get_token_person   s      )) 	 )44U;;J!+//:V\/]]LGGb|bbU_bbbccc		  	     c                    t                               dt           j         dt          j                    t          j                            d          }|s,t                               d           t          ddd          S g d	}|                     ||
          }|s|                     ||          }|s3t                               d|            t          d| ddd          S |j        t           j        k    rAt                               d|j         dt           j                    t          ddd          S |                                }|S )NzCmfWebhook.cls_call: person z, args: r   z(CmfWebhook.cls_call: webhook name absentzwebhook name absent  
text/plaincontent_type)	hook_type
token_user	eval_code	eval_fileeval_file_pathr   r   )r   r   z/CmfWebhook.cls_call: webhook not found by name webhook 
 not found  z(CmfWebhook.cls_call: webhook token_user z mismatch current_person znot authorized. Show error logi  )	r"   r#   current_personr   r   r   r   r.   call)r   webhook_namer   r   responses        r   cls_callzCmfWebhook.cls_call   st   	Wq/?WWWWXXX|''// 	SGG?@@@13\RRRRXXX''|F';; 	@gg<g??G 	aGGTlTTUUU?|???S_````!111GGg'.'9g gTUTdg gh h h =sQ]^^^^<<>>r'   c                    | j         dv rt          j                            d          }|s0t                              d|  d           t          ddd          S t          j                            |d	d
g          }|s6t                              d|  d|            t          d| ddd          S |j	        | k    rEt                              d|  d|  d|j	                    t          d|  d|j	         dd          S |
                                }n| j         dk    r|                                 }d|i}n| j         dk    rjt          j                            d          t          j                            d          }}|dvr6t                              d|  d|            t          d| ddd          S t          j                            t          j                            |                    }|s7t                              d|  d| d           t          d| ddd          S 	 t%          t          j        j        |j        g            dd| d!i}n# t*          $ r?}t                              d|  d"|            t          d#| d$d          cY d%}~S d%}~ww xY wt                              d|  d&| j                     t          d'd$d          S |S )(ug   Без полиморфного наследования мало смысла в этом методе)githubgitlabpluginzCmfWebhook.call(z): plugin code absentzplugin arg absentr)   r*   r+   typer   r2   z): plugin notfound by code zplugin code=r4   r5   z): webhook z mismatch plugin.webhook r3   bzPythonresultevagit_synceventrepo)pushz): unsupported event zUnsupported event: .i  )urlz): repo zRepo )r   z synced successfullyz): zRepo sync error: i  Nz): unsupported hook_type z&Unsupported hook_type. Show error log.)r-   r   r   r   r"   r#   r   r   CmfPluginGitr   webhook_calleval_bzpythonloggingwarningCmfEvagitRepourllibparseunquoteschedule_deferred_job	sync_repoid	Exception	exception)selfplugin_coder>   rA   rC   repo_urlrD   es           r   r7   zCmfWebhook.call1   s   >111!,**844K UF4FFFGGG 3S|TTTT(,,+vyFY,ZZF hY4YYKYYZZZ F{ F F FZfgggg~%%Pt P P $P P?E~P PQ Q Q  NtNNfnNNPSbnp p p p((**FF^z))''))F'FF^},,%l..w779I9I&9Q9Q8EJ&& U4 U Ue U UVVV >e > > >R^____'++0D0DX0N0N+OOD ^ U4 U U U U UVVV < < < <cP\]]]]Y%f&:&DDG;WWWW"$JH$J$J$JK Y Y Y!!"AT"A"Aa"A"ABBB 7A 7 7<XXXXXXXXXY GGVtVVdnVVWWWEsYeffffs   =.I, ,
J564J0*J50J5)N)__name__
__module____qualname__classmethodr   r&   r:   r7    r'   r   r   r   	   sw          [       [    [** * * * *r'   r   )rN   flaskr   cmf.includemodules.automation.fieldsr   r   r^   r'   r   <module>rb      s               1 1 1 1 1 1R R R R R' R R R R Rr'   