o
    g                     @   s   d dl mZ d dlmZ d dlmZmZmZm	Z	m
Z
mZmZmZmZmZmZ d dlmZ d dlZd dlmZ dd Zd	d
 Zdd Zdd Zdd Zdd Zdd ZdS )    )config)
Connection)IntegerStringupdatefuncand_or_caseDatecastliteral_columntext)SQLAlchemyErrorN)Stechc           	   
   C   s   z4t td}dtdtfdd}||}td}||| |d }|  t	|}|r2|W S W dS  t
yK } ztd	t|  dd }~w ty_ } z	td
|  dd }~ww )NENVIRONMENTSpasswordreturnc                 S   s    t  }|| d | S )Nzutf-8)hashlibmd5r   encode	hexdigest)r   md5_hash r   */var/www/html/api-tag/src/models/models.pycifrar_contrasenna   s   z+get_access_user.<locals>.cifrar_contrasennazg
            SELECT id,email FROM gs_users WHERE username = :username AND password = :password
        )usernamer   FzError1: zError2: )r   get_session	load_datastrr   executefetchallcloser   object_to_jsonr   print	Exception)	r   r   sessionr   password_cifradaqueryresponse_queryjson_responseexr   r   r   get_access_user   s(   
r,   c
                 C   s   z't td}
td}|
|| |||||||||	d
 |
  |
  W dS  tyC } ztdt	|  W Y d }~dS d }~ww )Nr   ai  
            INSERT INTO st_integra_tag (timestamp, tipo_negocio, ppu, marca_vehiculo, modelo_vehiculo, anio_vehiculo, color_vehiculo, imei_gps, usuario_solicitante, tipo_actividad)
            VALUES (:timestamp, :tipo_negocio, :ppu, :marca_vehiculo, :modelo_vehiculo, :anio_vehiculo, :color_vehiculo, :imei_gps, :usuario_solicitante, :tipo_actividad)
        )
	timestamptipo_negocioppumarca_vehiculomodelo_vehiculoanio_vehiculocolor_vehiculoimei_gpsusuario_solicitantetipo_actividadTError: F
r   r   r   r   r    commitr"   r   r$   r   )r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r&   r(   r+   r   r   r   insert_integraTAG2   s   "r:   c              
   C   s   z*t td}t| }td}||d|i }|  t	|}|r(|W S W dS  t
yF } ztdt|  W Y d }~dS d }~ww )Nr   zA
            SELECT * FROM gs_objects WHERE imei = :imei
        imeiFr7   )r   r   r   intr   r    r!   r"   r   r#   r   r$   r   )r;   r&   int_imeir(   r)   r*   r+   r   r   r   buscar_imeiD   s   
r>   c              
   C   s   z't td}td}||| |d }|  t|}|r%|W S W dS  t	yC } zt
dt|  W Y d }~dS d }~ww )Nr   ze
            SELECT object_id FROM gs_user_objects where user_id = :user_id and imei = :imei
        )user_idr;   Fr7   )r   r   r   r   r    r!   r"   r   r#   r   r$   r   )r?   r;   r&   r(   r)   r*   r+   r   r   r   buscar_existe_gs_user_objectX   s   
r@   c              
   C   s   z1t td}td}||ddi }|d }td}||| |d |  |  W dS  tyM } zt	d	t
|  W Y d }~d
S d }~ww )Nr   _
            SELECT group_id FROM gs_user_object_groups WHERE group_name = :group_name
        
group_nameSmartReportsr   zb
            UPDATE gs_user_objects SET group_id = :group_id WHERE object_id = :object_id
        )	object_idgroup_idTr7   Fr   r   r   r   r    fetchoner9   r"   r   r$   r   )rD   r&   r(   r)   rE   r+   r   r   r   update_group_idl   s   rH   c              
   C   s   z5t td}td}||ddi }|d }td}||| ||dddd |  |  W dS  tyQ } zt	d	t
|  W Y d }~d
S d }~ww )Nr   rA   rB   rC   r   z
            INSERT INTO gs_user_objects (user_id, imei, group_id, driver_id, trailer_id, fav) VALUES (:user_id, :imei, :group_id, driver_id, trailer_id, fav)
        )r?   r;   rE   	driver_id
trailer_idfavTr7   FrF   )r?   r;   r&   r(   r)   rE   r+   r   r   r   insert_gs_user_object   s   rL   c              
   C   sz   z t td}td}||| |dd |  |  W dS  ty< } ztdt	|  W Y d }~dS d }~ww )Nr   zo
            UPDATE gs_user_objects SET group_id = :group_id WHERE imei = :imei and user_id = :user_id
        r   )r?   r;   rE   Tr7   Fr8   )r?   r;   r&   r(   r+   r   r   r   sacar_grupo_smartreport   s   rM   )decoupler   r   lib.Connectionr   
sqlalchemyr   r   r   r   r   r	   r
   r   r   r   r   sqlalchemy.excr   r   	lib.Stechr   r,   r:   r>   r@   rH   rL   rM   r   r   r   r   <module>   s    4'