HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //home/arjun/projects/buyercall/buyercall/blueprints/sources/__pycache__/endpoints.cpython-310.pyc
o

we�\�@s�ddlmZddlmZmZddlmZddlmZmZddl	m
Z
ddlmZddl
mZddlmZmZdd	lmZdd
lmZmZddlZddlmZdd
lmZddlmZddlm Z m!Z!ddl"m#Z#ddl$m%Z%ddl&m'Z'ddl(m)Z)ddl*m+Z+ddl,m-Z-ddl.m/Z/ddl0m1Z1m2Z2ddl
m3Z3ede4dd�Z5e�6e4�Z7e
dd�dd��Z8e
dd�d d!��Z9e
d�d"d#��Z:e
d�d$d%��Z;e
d�d&d'��Z<e
dd�d(d)��Z=e
dd�d*d+��Z>d,d-�Z?d.d.d.d.ifd/d0�Z@Gd1d2�d2e/e3�ZAdS)3�)�datetime)�Partnership�PartnershipAccount)�Source)�ChannelType�Channel)�api_role_required)�User)�api_jsonify)�and_�cast)�current_user)�	Blueprint�requestN)�send_notifications)�db)�contact_exists)�Contact�ContactChannelTie)�Email)�Chat)�Message)�Lead)�send_request)�	bw_client)�
MethodView)�SourceInSchema�SourceOutSchema)�BlueprintMixin�
sourcesapiz/api/sources)�
url_prefix�admin�partnerc
CsVt��}d}d}d}i}|�rtj�tjtjk���}|s#tj�	d�}t
j�tt
jtjkt
j|jk����}|�	dd�|�	dd�|j|rG|jnd|�	di�tjd�}t
jdi|��}|�r|j|d	<|j|d<|j|d<|j|d<t�|j�|d
<|jr�t
�|j�nd|d<t�|j�|d<|jr�t
�|j�nd|d
<|jp�d|d<|jp�d|d<d}	d}
|jr�tj�tj|jk���}
|jr�tj�tj|jk���}	|
r�|
j�d|
j��nd|d<|	r�|	j�d|	j��nd|d<|
r�|
jnd|d<|	r�|	jnd|d<tjddtj�dtj��|j�d�d�}tdi|��}n
d}d}d}nd}d}d}t||||�S)NTzSource added successfully!����name�description�	workflows)r%r&�partnership_id�partnership_account_idr'�
created_by�idr(r)�partnershipName�partnershipAccountName�	updatedAt�	createdAt� �	updatedBy�	createdBy�updated_user_id�created_user_id�SOURCE_CREATED�You've�/partnership/sources��user_id�notify_message_type�user_related_entities�other_user_related_entities�	hyperlinkzSource name already exists�F�Invalid parameters!�)r�get_jsonr�query�filterr+r
r(�first�getrrr)r�create�sidr%r&r'�get_sid_from_id�get_name�
updated_on�
created_on�
updated_byr	r*�	firstname�lastname�partner_urlrr
)
�received�success�message�status_code�data�partnership�partnership_account�params�source�created_user�updated_user�es_data�es_responser@r@�H/home/arjun/projects/buyercall/buyercall/blueprints/sources/endpoints.py�
create_sources��


�



������
�r^c
Csfd}d}d}i}t��}|�r&|�rtj�tj|k���}tj�tjt	j
k���}|s1tj�d�}|�r|�dd�}|�|��s||_
|�dd�|_|�di�|_|�dt	j�|_|��|j|d	<|j
|d<|j|d<|j|d<|j|d
<|jrt�|j�nd|d<|j
|d<|jr�t�|j�nd|d
<|jp�d|d<|jp�d|d<d}	d}
|jr�tj�tj|jk���}
|jr�tj�tj|jk���}	|
r�|
j�d|
j��nd|d<|	r�|	j�d|	j��nd|d<|
r�|
jnd|d<|	r�|	jnd|d<t	jddt	j�dt	j��|j�d�d�}tdi|��}nd}d}d}nd}d}d}n
d}d}d}nd}d}d}t||||�S) NT�Source updated successfully!r#r$r%r&r'rLr+r(r)r,r-r.r/r0r1r2r3r4�
SOURCE_EDITEDr6r7r8r>zSource name already exists!F��Source not found!r?r@)rrArrBrCrGrDrr+r
r(rE�is_name_existsr%r&r'rL�saver)rrHrIrJrKr	r*rMrNrOrr
)
rGrQrRrSrTrPrXrU�new_source_namerYrZr[r\r@r@r]�
update_sourcecs�




���
���
�rfc
Cs�d}d}d}g}tj�tjtjk���}|stj�d�}tj�tj|jktj	tj	k��
tj��tj
���}|D]�}i}|j|d<|j|d<|j|d<t�|j�|d<|j	r[t�|j	�nd|d	<|jpcd|d
<|j	rot�|j	�nd|d<|jpwd|d<|j
p~d|d
<d}d}	|jr�tj�tj|jk���}	|jr�tj�tj|jk���}|	r�|	j�d|	j��nd|d<|r�|j�d|j��nd|d<|	r�|	jnd|d<|r�|jnd|d<|�|�q7t||||�S)NTzSources fetched successfully!r#r$r+r%r&r(r)r,r-r.r/r0r1r2r3r4)rrBrCr+r
r(rDrErr)�order_byrJ�descrKrGr%r&rHrrIrLr	r*rMrN�appendr
)
rQrRrSrTrU�sourcesrX�_datarYrZr@r@r]�get_sources�sV�


������rlcCs�d}d}d}i}tj�tj|ktjtjk���}|r�|j|d<|j|d<|j|d<t	�
|j�|d<|jr:t�
|j�nd|d<t	�
|j�|d	<|jrOt�
|j�nd|d
<|jpWd|d<|jp^d|d<d}d}|jrttj�tj|jk���}|jr�tj�tj|jk���}|r�|j�d
|j��nd|d<|r�|j�d
|j��nd|d<|r�|jnd|d<|r�|jnd|d<nd}d}d}t||||�S)NTzSource fetched successfully!r#r+r%r&r(r)r,r-r.r/r0r1r2r3r4rarbF)rrBrCrGr)r
rDr%r&rrHr(rrIrJrKrLr	r+r*rMrNr
)rGrQrRrSrTrXrYrZr@r@r]�get_source_by_id�sV��


������#rmcC�~d}d}d}i}t��}|r2|r2|�dd�}tj�tj|k���}|r+||_|�	�n
d}d}d}nd}d	}d}t
||||�S)
NTr_r#�activeFrarbr>r?)rrArErrBrCrGrD�	is_activerdr
)rGrQrRrSrTrProrXr@r@r]�update_metadata�$
rqcCrn)
NTr_r#r'Frarbr>r?)rrArErrBrCrGrDr'rdr
)rGrQrRrSrTrPr'rXr@r@r]�update_workflows3rrrscCsPd}d}d}i}|r!tj�tj|k���}|r|j}nd}d}d}t||||�S)NTz&Source workflows fetched successfully!r#rarbF)rrBrCrGrDr'r
)rGrQrRrSrTrXr@r@r]�
get_workflowsKsrtc
Cs�t��}d|vr|ddvs8d|vr|ddvs8d|vr"|ddvs8d|vr,|ddvs8d|vs8d|vs8d|vr?tgd	d
d�S|�d�}|�d�}|�d�}tj�tjtj	k��
�}tj�tj|k��
�}|smtj�d
�}t
j�t
jtjk��
�}|jdk�rMt|�dd�|�dd��}|s�t|�dd�|�dd�tjd�}tj�|�d�tjktjtjk��
�}|dur�|j}	|j}
nd}	d}
td1idtj�d|�d��d|�d��d|�d��d|�d��d|	�dd�dt���dd�dd�dd�d d�d!d�d"|
�d#d�d$d��}tj�|�tj��t�}||_|j|_t� |�|_!|�"�|jt� |�|||j|jdid%�}
t#d&|
�}t$|j�}t%�&d'�td(|jid)d*d+�S|d,k�r{z
td-did)d*d+�WSt'�yq}zd}WYd}~nd}~wwtd.|id)d*d+�S|d/k�r�z
t(j)d1i|��}Wnt'�y�}zd}WYd}~nd}~wwtd.|id)d*d+�S|d0k�r�zWnt'�y�}zd}WYd}~nd}~wwtd.|id)d*d+�S	dS)2r0�	firstName)�r0�lastName�phoneNumber�emailAddress�channelType�sourceId�	channelIdi�zMissing parametersF�
channelTypeIdr$�CALLNrv)�
phonenumber_1�emailr)z	no statusr)rMrNr��phonenumber�progress_status�question�	starttime�	call_type�outbound�status�ringing�my_phone�additional_info�call_source�agent_assigned_id�originating_number�
inbound_id��lead_id�	source_id�	channelID�channel_Type_Idr(r)�agent_id�payload�	/call-logzCalling Bandwidth number...�leadr#�SuccessT�CHAT�contact�leadId�TEXT_MESSAGE�EMAILr@)*rrAr
rErrBrCr+r
r(rDrrGrr)r%rrrr�r�r�r�utcnowr�session�add�commitrr��callr�get_id_from_sidrXrdrr�log�info�	ExceptionrrF)�json�
channel_idr��channel_type_idrU�channel_typerVr��
previous_leadr��agent_assignedr��contact_channelr��response�client�er�rRr@r@r]�interaction_to_user^s�



��

����
�
�
�
����	�
���
����
�



��
��
��r�rvc
	Cs�|dkrPtj�tj|k���}tj�tj|k���}tj�tjt	j
p#dk���}tj�tjt	jp1dk���}|jt
�|�||j|j|jt	jid�}td|�}dS|dkrjd}	|	jt
�|�||jt	jid�}td|�}dS)	Nr~r$r�r�r�rv)r�r�r�r�r�r�T)rrBrCrGrDrr%rr+r
r(rr)rr�r)
r�r�r�r�r�r�rUrVr�r�r@r@r]�interaction_to_lead�s>��	�
��
r�c@sReZdZdeieed�eed�eed�d�ZdgiZddd�Zdd	�Zd
d�Z	dS)
�	SourceApi�out)�inr�)rE�post�put�patchrENcCsT|stj��}|jdddd�}ntj�tj|k���}|jdd�}t|�|�dd�S)NTr�)rGr%)�many�key�only�r�zSource(s) fetched successfully.)rTrR)	rrB�all�get_serializer_classrCrGrDr
�dump)�selfr��queryset�
serializerr@r@r]rEs
z
SourceApi.getcCsz|jdd�}|�t���}tj|d<tj|d<t�|�	dd��s/tj
di|��d}d}d	}nd
}d}d}tg|||d
�S)Nr�r�r(r)r%rvzSource created successfully.i.T�Source name already exists.�F)rTrRrSrQr@)r��loadrrAr
r(r)r�get_by_namerErFr
)r�r�rTrRrSrQr@r@r]r�!s

zSourceApi.postc	Csz|jdd�}|�t���}t�|�dd��s&tj|fi|��}d}d}d}nd}d	}d
}|jdd�}t|�	|�|||d�S)
Nr�r�r%rvzSource updated successfully.r#Tr�r�Fr�)rTrSrRrQ)
r�r�rrArr�rE�updater
r�)	r�r��
serializer_inrTrXrRrSrQ�serializer_outr@r@r]r�4sz
SourceApi.put)N)
�__name__�
__module__�__qualname__rr�serializers�permission_classesrEr�r�r@r@r@r]r�s$������
r�)Br�'buyercall.blueprints.partnership.modelsrr�#buyercall.blueprints.sources.modelsr�$buyercall.blueprints.channels.modelsrr�$buyercall.blueprints.user.decoratorsr� buyercall.blueprints.user.modelsr	�buyercall.lib.util_restr
�
sqlalchemyrr�flask_loginr
�flaskrr�loggingr��+buyercall.blueprints.notification.utilitiesr�buyercall.extensionsr�#buyercall.blueprints.contacts.viewsr�$buyercall.blueprints.contacts.modelsrr�!buyercall.blueprints.email.modelsr� buyercall.blueprints.chat.modelsr�buyercall.blueprints.sms.modelsr�!buyercall.blueprints.leads.modelsr�buyercall.lib.util_requestsr�buyercall.lib.util_twilior�flask.viewsr�(buyercall.blueprints.sources.serializersrrrr��sources_api�	getLogger�loggerr^rfrlrmrqrsrtr�r�r�r@r@r@r]�<module>sV

D
F
(
G


r0