
    h                         S SK JrJrJr  S SKrS SKrS SKJr  SSKJ	r	  SSK
Jr  SSKJr  \" S\5      r\R!                  S	S
/S9S 5       r\R!                  SS
/S9S 5       rS r\R!                  SS/S9S 5       rg)    )	BlueprintrequestjsonifyNwraps   )Staff)	AuthModel)Configauth_bpz	/registerPOST)methodsc                  ^   [         R                  " 5       n U R                  S5      nU R                  S5      nU(       a  U(       d  [        SS05      S4$  [        R
                  " X5        [        SS05      S4$ ! [         a'  n[        SU 35        [        SS	05      S
4s SnA$ SnAff = f)zRegister a new user.usernamepasswordmessage"Username and password are required  zUser registered successfully   zError registering user: zError registering user  N)r   get_jsongetr   r
   register_user	Exceptionprint)datar   r   es       3/var/www/fran/franai/controllers/auth_controller.pyregisterr      s     Dxx
#Hxx
#H8	#GHI3NNC3	#ABCSHH C(,-	#;<=sBBCs   $A; ;
B,B'!B,'B,z/loginc                     [         R                  " 5       n U R                  S5      nU R                  S5      nU(       a  U(       d  [        SS05      S4$ [        R
                  " X5      (       ae  [        R                  " U[        R                  R                  5       [        R                  " SS9-   S.[        R                  S	S
9n[        SU05      $ [        SS05      S4$ )Nr   r   r   r   r      hours)userexpHS256	algorithmtokenzInvalid credentials  )r   r   r   r   r
   validate_credentialsjwtencodedatetimeutcnow	timedeltar   JWT_SECRET_KEY)r   r   r   r)   s       r   loginr2      s    Dxx
#Hxx
#H8	#GHI3NN%%h99

$$++-0B0B0LL
   G5 '((I456;;    c                 0   ^  [        T 5      U 4S j5       nU$ )Nc                    > S nS[         R                  ;   a  [         R                  S   nU(       d  [        SS05      S4$  [        R                  " U[
        R                  S/S9nUS   nT" U/U Q70 UD6$ !   [        SS05      S4s $ = f)	Nzx-access-tokenr   zToken is missing!r*   r&   )
algorithmsr$   zToken is invalid!)r   headersr   r,   decoder   r1   )argskwargsr)   r   current_userfs        r   	decorated!token_required.<locals>.decorated/   s    w.OO$45EI':;<cAA	B::eV%:%:yQD<L ////	BI':;<cAAs   *A8 8Br   )r<   r=   s   ` r   token_requiredr?   .   s!    
1X0 0  r3   z/generate/<pid>GETc                 
   [        SU  35         [        R                  " U 5      nU(       d  [        SS05      S4$ [        R
                  " U 5      nUS   US   US   US   US	   US
   U[        R                  R                  5       [        R                  " SS9-   S.n[        R                  " U[        R                  SS9n[        SU05      $ ! [         a'  n[        SU 35        [        SS05      S4s S nA$ S nAff = f)Nz3DEBUG: Received request to generate token for pid: r   zUser not foundi  pid
first_name	last_namecompany_emailprofile_photo_pathpositionr!   r"   )r$   rC   rD   rE   rF   rG   roler%   r&   r'   r)   zError generating token: z,An error occurred while generating the tokenr   )r   r	   
get_by_pidr   r
   get_user_roler.   r/   r0   r,   r-   r   r1   r   )rB   r$   rH   payloadr)   r   s         r   generate_tokensrL   B   s   	?u
EFY$I'7893>>&&s+ K|,k*!/2"&';"<Z($$++-0B0B0LL	
 

7F$9$9WM'(( Y(,-	#QRSUXXXYs#   +C BC 
DC=7D=D)flaskr   r   r   r,   r.   	functoolsr   models.staff_modelr	   models.auth_modelr
   services.configr   __name__r   router   r2   r?   rL    r3   r   <module>rU      s    - - 
   & ) $
Ix
({VH-C .C  	x&*< +<"( 	 5'2Y 3Yr3   