
    
mf                     H   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  ee      Zde_        ej,                  d        Z ej0                  dd	g
      d        Z ej0                  dd	g
      d        Z ej0                  d      d        Z ej0                  d      d        Z ej0                  ddg
      ed               Z ej0                  ddg
      d        Z ej0                  ddg
      d        Z ej0                  ddg
      ed               Z  ej0                  ddd	g
      ed               Z! ej0                  ddg
      ed               Z" ej0                  dd	g
      d        Z# ej0                  dd g
      d!        Z$ ej0                  d"d	g
      d#        Z% ej0                  d$dg
      d%        Z& ej0                  d&d	g
      d'        Z' ej0                  d(d	g
      d)        Z( ej0                  d*d g
      d+        Z) ej0                  d,dg
      ed-               Z* ej0                  d.dg
      d/        Z+ ej0                  d0d g
      d1        Z, ej0                  d2dg
      d3        Z-y4)5    )requestjsonifyrender_templateredirecturl_for	send_file)LoginManager
login_userlogout_userlogin_required)appdb)PersonDeviceRoleUsers)serviceloginc                 R    t         j                  j                  t        |             S )N)r   querygetint)user_ids    4D:\Anvar\prog\Python\Xudoyberdi's task\app\routes.py	load_userr      s    ;;??3w<((    z	/registerPOST)methodsc                     t         j                  d   } t         j                  d   }t        j                  j	                  |       j                         rt        dd      S t        |       }|j                  |       |j                  d       t        j                  j                  |       t        j                  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_users      r   registerr0      s    ||J'H||J'H{{h/5578]^^h'H(#aJJNN8JJxGK())r   z/loginc                  0   t         j                  d   } t         j                  d   }t        j                  j	                  |       j                         }|r|j                  |      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!   users      r   r   r   "   s    ||J'H||J'H;;  ( 399;Dt**84<=>?DDtGO,--r   /c                      t        d      S )Nz
index.htmlr    r   r   homer:   0       <((r   z/indexc                  *    t        t        d            S Nr:   )r   r   r9   r   r   indexr>   5   s    GFO$$r   z
/user/infoGETc                      t        d      S )Nzprotected.htmlr8   r9   r   r   r&   r&   :   s     +,,r   c                      t        d      S )Nz
login.htmlr8   r9   r   r   
login_pagerB   @   r;   r   c                      t        d      S )Nr#   r8   r9   r   r   register_formrD   E   s    ?++r   z/logoutc                  >    t                t        t        d            S r=   )r   r   r   r9   r   r   logoutrF   J   s     MGFO$$r   z	/patcientc                      t        d      S )Nzperson_data.htmlr8   r9   r   r   r3   r3   Q   s     -..r   z/api/v1/puls/<passport_number>c                 ~    t        j                  |        }|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results     r   get_data_url_imagerN   W   sW     !!_$57F	o%66W#XYZZ
  	r   z/api/v1/postdatac                     t        j                         } | d   }| d   }| d   }t        j                  j	                  |      j                         }t        j                  j	                  |j                        j                         }t        j                  |j                   ||      }|du rt        ddi      d	fS y )
Ndevice_name
created_atfield1name	device_idTr$   zMa`lumotlar qabul qilindi   )r   get_jsonr   r   r(   r)   r   idr   	write_csvrL   r   )datarP   rQ   rR   devicepersonrM   s          r   	post_datar^   d   s    D}%Kl#J(^F\\###5;;=F\\##fii#8>>@F&"8"8!9JOF~	#>?@#EE r   z/api/v1/clear/<username>DELETEc                    	 t         j                  j                  d      }t        j                  j                  |      j                         }|j                  dk(  rQt        j                  j                  |       j                         }t        j                  |      }t        d| i      S y # t        $ r}t        ddi      cY d }~S d }~ww xY 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]   rM   es         r   
clear_datarh   q   s    ALL$$[1	zz###399;77a<\\+++:@@BF**62FI&344   A	#>?@@As   B,B0 0	C9CCCz/api/v1/addpersonc                  p   t        j                         } | d   }| d   }| d   }| d   }t        j                  j	                  |      j                         }t        |       |Gt        |||d|      }t        j                  |       t        j                  |       t        dd	i      S t        dd
i      S )NrT   surnameagepassportrL   rb   )rT   rj   rk   role_idrL   r$   zPerson createdzBunday passportli mijoz mavjud)r   rX   r   r   r(   r)   printr   
add_personcreate_filer   )r[   rT   rj   rk   rL   r]   
new_persons          r   rp   rp   ~   s    D<D9oG
u+C:&O\\##O#DJJLF	&M~wC\kl
:&O,	#3455	#CDEEr   z/api/v1/getallpersonc                      t         j                  j                         } g }| D ]7  }|j                  |j                  |j
                  d}|j                  |       9 t        d|i      S )N)rT   rL   rj   persons)r   r   allrT   rL   rj   appendr   )rt   person_listr]   person_datas       r   get_all_userry      sh    ll GK (KK%55~~

 	;'( I{+,,r   z/api/v1/devicec                     t        j                         } | d   }| d   }t        j                  j	                  |      j                         }t        j                  j	                  |      j                         }t        |j                         |j                  t        j                  j	                  |j                        j                         }|jt        |j                         d |_        t        j                  j                          |j                  |_        t        j                  j                          n/|j                  |_        t        j                  j                          t        ddi      S )NrL   r$   rS   rm   rU   zdevice connected)r   rX   r   r   r(   r)   r   ro   rV   rY   rT   r   r,   r.   r   )r[   rL   rP   r\   r]   rr   s         r   plug_devicer{      s   D,-Oy/K\\###5;;=F\\##O#DJJLF	&

\\++fii+@FFH
!*//"#'J JJ%yyFJJ%yyFJJI1233r   z/api/v1/adddevicec                  6    t        j                         } | d   }y )NrP   )r   rX   )r[   rP   s     r   
add_devicer}      s    D}%Kr   z/api/v1/deletedata/<passport>c                     t        |        t        j                  j                  |       j	                         }t        j                  |       t        j                  |        t        ddi      S )Nrm   r$   zPerson deleted)	ro   r   r   r(   r)   r   rd   delete_datar   )rl   r]   s     r   r   r      sV    	(O\\##H#=CCEF&!!I/011r   z/devicec                      t        d      S )Nzdevice.htmlr8   r9   r   r   r\   r\      s     =))r   z/api/v1/devicesc                     t         j                  j                         } g }| D ]  }t        |j                         t
        j                  j                  |j                        j                         }|A|j                  |j                  |j                  |j                  d}|j                  |       |j                  dddd}|j                  |        t        |      S )NrU   )rT   person_nameperson_surnamerl   NuLL)r   r   ru   ro   rY   r   r(   r)   rT   rj   rL   rv   r   )devicesdevice_listr\   r]   device_datas        r   get_devicesr      s    ll GK ,fii''&))'<BBD%{{"(.."22	K {+ %"("	K {+',( ;r   z"/api/v1/deletedevice/<device_name>c                     t         j                  j                  |       j                         }|"t	        j
                  |       t        ddi      S y )NrS   r$   zDevice deleted)r   r   r(   r)   r   rd   r   )rP   r\   s     r   delete_devicer      sL    \\###5;;=Ff%	#3455 r   z/api/v1/getfile/<passport>c                     t         j                  j                  |       j                         }t	        |j
                         |3t        j                  |       }|durt        |d      S t        ddi      S y )Nrm   FT)as_attachmentr$   zfile not exist)	r   r   r(   r)   ro   rT   r   r   r   )rl   r]   files      r   get_filer      so    \\##H#=CCEF	&++  *uT55I&6788 r   N).flaskr   r   r   r   r   r   flask_loginr	   r
   r   r   r   r   
app.modelsr   r   r   r   r   login_manager
login_viewuser_loaderr   router0   r   r:   r>   r&   rB   rD   rF   r3   rN   r^   rh   rp   ry   r{   r}   r   r\   r   r   r   r9   r   r   <module>r      s\   P P M M  2 2 S!"  ) ) ;)* **" 8fX&
. '
. 3) ) 8% % <%)-  *- 8eW%) &) ;(, ), 9ug&%  '%
 ;0/  1/ +eW=  > x0	F 1	F %z:	A ;	A 1F 2F" !E73
- 4
- fX.4 /4, 1& 2&
 *XJ?2 @2 9ug&*  '* ug.  / 4 /(D6 E6 '%99 :9r   