from fastapi import APIRouter, HTTPException from pydantic import BaseModel from common.token.token_manager import TokenManager router = APIRouter() token_manager = TokenManager() # Initialize TokenManager class RefreshTokenRequest(BaseModel): refresh_token: str id: str role: int class RefreshTokenResponse(BaseModel): access_token: str @router.post("/refresh-token", response_model=RefreshTokenResponse) async def refresh_token(request: RefreshTokenRequest): """ Endpoint to refresh the access token using a valid refresh token. """ subject = {"id": request.id, "role": request.role} try: access_token = token_manager.refresh_access_token( request.refresh_token, subject ) except ValueError as e: raise HTTPException(status_code=400, detail=str(e)) return RefreshTokenResponse(access_token=access_token)