
    HCi	                     2   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mZ d dlmZmZ d dlmZ d dlmZmZ d d	lmZmZ  ed
dg      Zej5                  deej6                  d       e        ee
      fdededefd       Zej5                  deej6                  d       ee
      fdedefd       Zej5                  dej6                  d       ee
      fdedefd       Zej5                  d       ee       ee
      fdedefd       Zy)     )	APIRouterDependsstatusRequest)OAuth2PasswordRequestForm)Session)get_session)
UserCreateUserRead)TokenRefreshRequest)AuthService)get_current_userrequire_roles)UserRolez	/api/authAuthentication)prefixtagsz/loginzLog in and receive tokens)response_modelstatus_codesummaryrequest	form_datasessionc                 Z    t        j                  |j                  |j                  | |      S )zv
    Authenticate using OAuth2 form (username=email, password).
    Returns access and refresh tokens on success.
    )r   loginusernamepassword)r   r   r   s      E/var/www/html/story-book/Story-Book-python-api/app/api/routes/auth.pyr   r      s'     Y//1C1CWgVV    z/refreshzRefresh tokensreqc                 B    t        j                  | j                  |      S )z>
    Exchange a valid refresh token for a new token pair.
    )r   refresh_tokenr"   r   s     r    refreshr&      s    
 $$S%6%6@@r!   z/logoutzLogout (revoke refresh token))r   r   c                 B    t        j                  | j                  |      S )zI
    Logout the currently authenticated user (revoke refresh token).
    )r   logoutr$   r%   s     r    r(   r(   $   s    
 c//99r!   z/logout-allcurrent_userc                 .    t        j                  | |      S )N)r   
logout_all)r)   r   s     r    r+   r+   +   s    
 !!,88r!   N) fastapir   r   r   r   fastapi.securityr   sqlmodelr   app.db.sessionr	   app.schemas.userr
   r   app.schemas.authr   r   app.services.auth_servicer   app.api.depsr   r   app.models.userr   r   routerpostHTTP_200_OKr   r&   r(   r+    r!   r    <module>r9      sP   7 7 6  & 1 2 1 8 &	+-=,>	? Xe9K9KUpqCJ9ahitau W7 W'@ WW^ W rW Z6;M;MWgh4;K4H A A' A iA YF$6$6@_`3:;3G : : : a: ] !12{+999 9r!   