
    i                     N   d dl mZmZmZmZ d dlmZ d dlmZ d dl	m
Z
 d dlmZ d dlmZ d dlmZ d dlmZ d d	lmZ d d
lmZ d dlZ eddg      Zej3                  d       e        ee
      fdedefd       Zej3                  d       e        ee
      fdedefd       Zy)    )	APIRouterDependsstatusHTTPException)JSONResponse)OAuth2PasswordRequestForm)get_db)Session)AuthenticationClass)RolClass)SchoolClass)	timedelta)	UserLoginNz/authenticationsAuthentications)prefixtagsz/login	form_datadbc                     	 t        |      j                  | j                  | j                        }t	        d|d          |d   j                  d      }t	        d|       |rt        |      j                  |      nd }t	        d|       d}t        |t              r-d|v r|d   j                  dd      }nd	|v rt	        d
|d	          t	        d|       t        |t              r3|j                  d      r"|j                  di       j                  dg       ng }t	        d|       t        d      }t        |      j                  dt        |d   d         i|      }|j                         }	|d   j                  d      }
d }|
r?t        |      j                  d|
      }t        |t              rt!        |      dkD  r|d   }||d   d   |d   d   ||nd|
||||d   d   |d   d   d|	d}t#        t$        j&                  dd|d      S # t(        $ r9}t#        |j*                  |j*                  |j,                  d d      cY d }~S d }~wt.        $ r5}t#        t$        j0                  ddt        |       d d      cY d }~S d }~ww xY w) Nz
USER DATA:	user_datarol_idzROL_ID:zROL_RESULT: rol_datarolerrorzERROR AL OBTENER ROL:z	ROL_NAME:permissionszPERMISSIONS: minutessubrutcustomer_idr   )pager"   id	full_nameemailbearer)access_tokenuser_idr!   r   r"   schoolr   r   r%   r&   
token_type
expires_in   zLogin successfulr   messagedatastatus_codecontent  Internal server error: )r   authenticate_userusernamepasswordprintgetr   
isinstancedictr   create_tokenstrtotal_secondsr   get_alllistlenr   r   HTTP_200_OKr   r2   detail	ExceptionHTTP_500_INTERNAL_SERVER_ERROR)r   r   useruser_rol_id
rol_resultrol_namer   token_expirestokenexpires_in_secondsr"   school_dataschools_listr0   es                  aC:\Users\jesus\OneDrive\Escritorio\proyecto_pie360\backend\app\backend\routers\authentications.pyloginrR      s   R
"2&889K9KYM_M_` 	lD-.;'++H5i%6AXb\%%k2t
mZ( j$'Z'%j155eR@J&-z'/BCk8$ PZZdfjOkpzp~p~  @J  qKjnnZ488K  QSnk*!'2#B'44eSkARSXAY=Z5[]jk*88: ;'++M:&r?22{2SL,-#l2Ca2G*1o "K(.$U+%0%<k!&!&k*;7+&w/",
 **-
 	
  
--88
 	
  
==4SVH=
 	

s0   HH 	J.IJJ*JJJz/logoutc           	      |   	 t        |      j                  | j                  | j                        }t	        d      }t        |      j                  dt        |j                        i|      }||j                  |j                  |j                  |j                  dd}t        t        j                  dd|d	      S # t        $ r9}t        |j                  |j                  |j                   d d	      cY d }~S d }~wt"        $ r5}t        t        j$                  d
dt        |       d d	      cY d }~S d }~ww xY w)Nr   r   r    r'   )r(   r!   
visual_rutr   nicknamer+   r-   zLogout successfulr.   r1   r4   r5   )r   r6   r7   r8   r   r=   r>   r!   rT   r   rU   r   r   rC   r   r2   rD   rE   rF   )r   r   rG   access_token_expiresaccess_token_jwtr0   rP   s          rQ   logoutrX   h   s"   '
"2&889K9KYM_M_`(9.r2??DHH@VXlm -88//kk"
 **.
 	
  
--88
 	
  
==4SVH=
 	

s0   B:B= =	D;.C:4D;:D;*D60D;6D;)fastapir   r   r   r   fastapi.responsesr   fastapi.securityr   app.backend.db.databaser	   sqlalchemy.ormr
   (app.backend.classes.authentication_classr   app.backend.classes.rol_classr    app.backend.classes.school_classr   datetimer   app.backend.schemasr   jsonauthenticationspostrR   rX        rQ   <module>rh      s    = = * 6 * " H 2 8  ) 
	
 h18'RX/ S
. S
 S
  S
j i 29)7SY? (
/ (
 (
 !(
rg   