o
    ؤgV                      @   s  d dl mZmZmZmZmZmZ d dlmZm	Z	m
Z
mZ d dlmZmZ d dlmZmZmZmZ d dlmZ d dlmZ eeZde_ejdd	 Zejd
dgddd Zejddgddd Zeddd Zeddd Zejddgdedd Zejddgddd Zejd
dgddd Z ejddgded d! Z!ejd"ddgded#d$ Z"ejd%dgded&d' Z#d(d) Z$ejd*dgdd+d, Z%ejd-d.gdd/d0 Z&ejd1dgdd2d3 Z'ejd4dgdd5d6 Z(ejd7dgdd8d9 Z)ejd:dgdd;d< Z*ejd=d.gdd>d? Z+ejd@dgdedAdB Z,ejdCdgddDdE Z-ejdFd.gddGdH Z.ejdIdgddJdK Z/dLS )M    )requestjsonifyrender_templateredirecturl_for	send_file)LoginManager
login_userlogout_userlogin_required)appdb)PersonDeviceRoleUsers)service)datetimeloginc                 C   s   t jt| S )N)r   querygetint)user_id r   */var/www/html/ecg_monitoring/app/routes.py	load_user   s   r   z	/registerPOST)methodsc                  C   sz   t jd } t jd }tjj| d rtdddS t| d}|| |d t	j
| t	j
  t| ttdS )	Nusernamepasswordr   register.htmlz#Bunday foydalanuvchi tizimda mavjud)message   	protected)r   formr   r   	filter_byfirstr   set_passwordset_roler   sessionaddcommitr	   r   r   )r   r   new_userr   r   r   register   s   





r.   z/loginc                  C   s\   t jd } t jd }tjj| d }|r||dur$tddidfS t| t	t
dS )	Nr   r   r    TmsgzInvalid username or passwordi  switch_device)r   r%   r   r   r&   r'   check_passwordr   r	   r   r   )r   r   userr   r   r   r   #   s   

/c                   C      t dS Nz
index.htmlr   r   r   r   r   home1      r7   z/indexc                   C   s   t tdS Nr7   )r   r   r   r   r   r   index6   s   r:   z
/user/infoGETc                   C   r4   r5   r6   r   r   r   r   r$   ;      r$   c                   C   r4   )Nz
login.htmlr6   r   r   r   r   
login_pageA   r8   r=   c                   C   r4   )Nr!   r6   r   r   r   r   register_formF   r8   r>   z/logoutc                   C   s   t   ttdS r9   )r
   r   r   r   r   r   r   logoutK   s   r?   z	/patcientc                   C   r4   )Nzperson_data.htmlr6   r   r   r   r   r0   R   r<   r0   z/api/v1/puls/<passport_number>c                 C   s<   t |  }|du rtd|  diS t|d |d dS )NFr"   z! bunday foydalanuvchi mavjud emasr   r#   )xy)r   drow_graphicr   )passport_numberresultr   r   r   get_data_url_imageX   s   rE   c                  C   s   t  } | d}|S )Nz%d-%m-%Y %H:%M:%S)r   nowstrftime)rF   formatted_timer   r   r   generate_formatted_timee   s   
rI   z/api/v1/postdatac                  C   s   t  } | d }t }| d }| d }| d }| d }| d }| d }| d }	| d	 }
tjj|d
 }tjj|jd }t	
|j ||||||||	|

}|du rZtddidfS d S )Ndevice_nameqrs_complexrr_interval
st_segmentp_wavet_wavepr_intervalqt_interval	hearbeatsname	device_idTr"   zMa`lumotlar qabul qilindi   )r   get_jsonrI   r   r   r&   r'   r   idr   	write_csvrC   r   )datarJ   timerK   rL   rM   rN   rO   rP   rQ   rR   device1personrD   r   r   r   	post_datal   s&   r_   z/api/v1/clear/<username>DELETEc              
   C   s   z-t jd}tjj|d }|jdkr+tjj| d }t	
|}td| iW S W d S  tyE } ztddiW  Y d }~S d }~ww )N	role_namerS      r"   zBunday person mavjud emas)r   argsr   r   r   r&   r'   rY   r   r   delete_personr   	Exception)r   ra   roler^   rD   er   r   r   
clear_data   s   

rh   z/api/v1/addpersonc                  C   s   t  } | d }| d }| d }| d }tjj|d }t| |d u r>t|||d|d}t| t	| t
dd	iS t
dd
iS )NrT   surnameagepassportrC   rb   )rT   ri   rj   role_idrC   r"   zPerson createdzBunday passportli mijoz mavjud)r   rX   r   r   r&   r'   printr   
add_personcreate_filer   )r[   rT   ri   rj   rC   r^   
new_personr   r   r   ro      s   

ro   z/api/v1/getallpersonc                  C   s@   t j } g }| D ]}|j|j|jd}|| q	td|iS )N)rT   rC   ri   persons)r   r   allrT   rC   ri   appendr   )rr   person_listr^   person_datar   r   r   get_all_user   s   
rw   z/api/v1/devicec                  C   s   t  } | d }| d }tjj|d }tjj|d }t|j |jd u rVtjj|j	d }|d urMt|j
 d |_tj  |j	|_tj  n	|j	|_tj  tddiS )NrC   r"   rS   rl   rU   zdevice connected)r   rX   r   r   r&   r'   r   rn   rV   rY   rT   r   r*   r,   r   )r[   rC   rJ   r]   r^   rq   r   r   r   plug_device   s"   




rx   z/api/v1/adddevicec                  C   s   t  } | d }d S )NrJ   )r   rX   )r[   rJ   r   r   r   
add_device   s   ry   z/api/v1/deletedata/<passport>c                 C   s:   t |  tjj| d }t| t|  tddiS )Nrl   r"   zPerson deleted)	rn   r   r   r&   r'   r   rd   delete_datar   )rk   r^   r   r   r   rz      s
   

rz   z/devicec                   C   r4   )Nzdevice.htmlr6   r   r   r   r   device   r<   r{   z/api/v1/devicesc                  C   s   t j } g }| D ]3}t|j tjj|jd }|d ur/|j|j|j	|j
d}|| q	|jdddd}|| q	t|S )NrU   )rT   person_nameperson_surnamerk   NuLL)r   r   rs   rn   rY   r   r&   r'   rT   ri   rC   rt   r   )devicesdevice_listr]   r^   device_datar   r   r   get_devices   s&   

r   z"/api/v1/deletedevice/<device_name>c                 C   s4   t jj| d }|d urt| tddiS d S )NrS   r"   zDevice deleted)r   r   r&   r'   r   rd   r   )rJ   r]   r   r   r   delete_device   s
   
r   z/api/v1/getfile/<passport>c                 C   sR   t jj| d }t|j |d ur't| }|dur!t|ddS tddiS d S )Nrl   FT)as_attachmentr"   zfile not exist)	r   r   r&   r'   rn   rT   r   r   r   )rk   r^   filer   r   r   get_file   s   

r   N)0flaskr   r   r   r   r   r   flask_loginr   r	   r
   r   r   r   
app.modelsr   r   r   r   r   r   login_manager
login_viewuser_loaderr   router.   r   r7   r:   r$   r=   r>   r?   r0   rE   rI   r_   rh   ro   rw   rx   ry   rz   r{   r   r   r   r   r   r   r   <module>   st     















