
    4?i/	                        S SK Jr  S SK7  S SKJr  S SKJr  S SKJr  S SK	J
r
  S SKJrJrJrJr  S SKJrJr  \" S	S
/S9r\R)                  S\S9\" \5      4S\S\4S jj5       r\R1                  S\S9\" \5      4S\S\4S jj5       r\R1                  S5      \" \5      4S\S\S\
4S jj5       r\R1                  S\\   S9\" \5      4S\
4S jj5       rg)    )select)*)Session)Client)get_db)AsyncSession)	APIRouterDependsHTTPExceptionRequest)create_clientget_client_by_widgetz/clientsClients)prefixtags/)response_modeldatadbc                 4   #    [        X5      I S h  vN $  N7fN)r   )r   r   s     4/var/www/html/livechat/backend/app/routers/client.pycreate_client_apir      s     r((((s   z/{widget_id}	widget_idc                 >    [        X5      nU(       d
  [        SSS9eU$ )Ni  zClient not found)status_codedetail)r   r   )r   r   clients      r   
get_clientr      s"    !"0F4FGGM    z/widget/validate/{client_id}	client_idrequestc                   #    UR                   R                  S5      =(       d    UR                   R                  S5      nUR                  [        [        R
                  5      R                  [        R                  U :H  5      5      I S h  vN nUR                  5       nU(       d  SSS.$ U(       a  UR                  U5      (       d  SSS.$ SUS.$  NG7f)	NoriginrefererFzInvalid clientId)validreasonzUnauthorized domainT)r&   allowed_url)
headersgetexecuter   r   website_urlwhereclient_widget_idscalar
startswith)r!   r"   r   r$   resr(   s         r   validate_widgetr2   $   s      __  *Lgoo.A.A).LF 

v!!"(()@)@I)MN C **,K*<==**;77*?@@+66s   B	CCACz/all/clientsc                    #    [        [        5      R                  [        R                  5      nU R	                  U5      I S h  vN nUR                  5       R                  5       nU$  N$7fr   )r   r   order_byidr+   scalarsall)r   stmtresultclientss       r   get_all_clientsr;   ;   sM     &>""699-D::d##Fnn""$GN $s   AA*A(%A*N)
sqlalchemyr   app.schemas.clientsqlalchemy.ormr   app.models.clientr   app.core.databaser   sqlalchemy.ext.asyncior   fastapir	   r
   r   r   app.services.clientr   r   routerpost	ClientOutClientCreater   r*   strr   r2   listClientSchemar;    r    r   <module>rL      s      " $ $ / = = C	*I;	7
 S+>Efo ), )G ) ,) N95-4V_ # 7  6 *+OVW] 7S 77 7 7 ,7, N4+=>-4V_ l  ?r    