o
    nÒYi  ã                   @   s>   d dl Z d dlmZ ddlmZ ddlmZ G dd„ dƒZdS )é    N)Úsafe_invoke_callbacké   )ÚClient)Ú	Constantsc                   @   sl   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ ZdS )ÚConsumerc                 K   sR   |  dd ¡| _|  dd ¡| _|  dtj¡| _|  dg ¡| _|  dd ¡| _d | _d S )NÚprojectÚtokenÚhostÚcontextsÚ
Connection)	Úpopr   r   r   ÚHOSTr	   r
   r   Úclient)ÚselfÚkwargs© r   ú]/var/www/html/asistente-voz-ia/venv/lib/python3.10/site-packages/signalwire/relay/consumer.pyÚ__init__   s   
zConsumer.__init__c                 C   ó   d S ©Nr   ©r   r   r   r   Úsetup   ó   zConsumer.setupc                 C   r   r   r   r   r   r   r   Úready   r   zConsumer.readyc                 C   r   r   r   r   r   r   r   Úteardown   r   zConsumer.teardownc                 C   r   r   r   )r   Úcallr   r   r   Úon_incoming_call   r   zConsumer.on_incoming_callc                 C   r   r   r   ©r   Úmessager   r   r   Úon_task   r   zConsumer.on_taskc                 C   r   r   r   r   r   r   r   Úon_incoming_message   r   zConsumer.on_incoming_messagec                 C   r   r   r   r   r   r   r   Úon_message_state_change!   r   z Consumer.on_message_state_changec                 C   sJ   |   ¡  |  ¡  tdi |  ¡ ¤Ž| _| j d| j¡ | j ¡  |  ¡  d S )Nr   r   )	r   Úcheck_requirementsr   Ú_build_relay_client_paramsr   ÚonÚ_client_readyÚconnectr   r   r   r   r   Úrun$   s   
zConsumer.runc                 C   s.   | j d u s| jd u st| jƒdkrtdƒ‚d S )Nr   z=project, token and contexts instance attributes are required!)r   r   Úlenr
   Ú	Exceptionr   r   r   r   r"   ,   s   "ÿzConsumer.check_requirementsc                 C   s:   | j | jdœ}| jd ur| j|d< | jd ur| j|d< |S )N)r   r   r	   Ú
connection)r   r   r	   r   )r   Úparamsr   r   r   r#   0   s   þ



z#Consumer._build_relay_client_paramsc                 Ã   sx   | j j | j| j¡I d H  | j j | j| j¡I d H  | j j | j| j¡I d H  | j j 	| j| j
¡I d H  t| jƒ d S r   )r   ÚcallingÚreceiver
   r   Útaskingr   Ú	messagingr    Ústate_changer!   r   r   )r   r   r   r   r   r%   ;   s   €zConsumer._client_readyN)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r   r    r!   r'   r"   r#   r%   r   r   r   r   r      s    r   )ÚloggingÚsignalwire.blade.helpersr   r   r   Ú	constantsr   r   r   r   r   r   Ú<module>   s
    