
    b6i2	                        d dl 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j3                  deej4                  d       e        ee	      fdedefd       Zej3                  deej4                  d       ee	      fdedefd       Zej3                  dej4                  d       ee       ee	      fdedefd       Zy)    )	APIRouterDependsstatus)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	form_datasessionc                 X    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   s     E/var/www/html/story-book/Story-Book-python-api/app/api/routes/auth.pyr   r      s%     Y//1C1CWMM    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   current_userc                 .    t        j                  | |      S )zI
    Logout the currently authenticated user (revoke refresh token).
    )r   logout)r$   r   s     r   r&   r&   $   s    
 lG44r   N)fastapir   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   <module>r4      s   . . 6  & 1 2 1 8 &	+-=,>	? Xe9K9KUpq18wWbOc N. NW N rN Z6;M;MWgh4;K4H A A' A iA YF$6$6@_` '(8 9gVaNb 5 5G 5 a5r   