U
    dG                     @   sR   d dl Z d dlZd dlT d dlmZ d dlmZ d dlmZ G dd dej	Z	dS )    N)*)fields)cmf_plugin_smsgate)quotec                       sJ   e Zd Zedd Zdd Z fddZdd fd	d

Zdd Z  Z	S )CmfPluginSMSGatec                 C   s   | j ddgdS )NTplugin.ext_url)systemr   )get)cls r   %./common/models/cmf_plugin_smsgate.pyget_local_smsgate   s    z"CmfPluginSMSGate.get_local_smsgatec                 C   s    | j r
d S tj| jdd| _ d S )NZsmsgate)nametype)pluginZmodelsZ	CmfPluginr   selfr   r   r   _process_plugin   s    z CmfPluginSMSGate._process_pluginc                    s   t   dg S )Nr   )supersave_preload_fieldsr   	__class__r   r   r      s    z$CmfPluginSMSGate.save_preload_fieldsr   )depthc                   s   |    t j|d|i|S )Nr   )r   r   save)r   r   argskwargsr   r   r   r      s    zCmfPluginSMSGate.savec              
   O   s   t js
d S | dg t|dkr4td| d | jjjj	t
|t
|d}ztj|dd}|  W nT tjjk
r } z2td| d	| d
 td| d W Y dS d }~X Y nX dS )Nr   F   ur   Предупреждение отправки SMS. Длина текста SMS больше 70 символов: ``)phonetext   )timeoutzCmfPluginSMSGate.send_message(z, )u9   Ошибка отправки SMS уведомления .FT)ZconfigZ
PRODUCTIONZload_fieldslengdebugr   Zext_urlvalueformatr   requestsr	   Zraise_for_status
exceptionsZRequestExceptionloggingZ	exceptionZ	cmf_alert)r   r   messager   r   Zget_urlreser   r   r   send_message   s"    
 zCmfPluginSMSGate.send_message)
__name__
__module____qualname__classmethodr   r   r   r   r/   __classcell__r   r   r   r   r      s   
r   )
r+   r)   Zcmf.includeZcmfr   Zcommon.fieldsr   Zurllib.parser   r   r   r   r   r   <module>   s   