from fastapi import APIRouter, HTTPException, Request

from model.access_token_model import AccessTokenModel
from utils.auth_helper import get_bearer_token_from_request

router = APIRouter(prefix="/auth", tags=["Auth"])


@router.post("/logout")
async def logout(request: Request):
    raw_token = get_bearer_token_from_request(request)
    if not raw_token:
        raise HTTPException(status_code=401, detail="Unauthorized")

    # Bearer 1 là token test, không nằm trong DB nên không revoke được.
    if raw_token == "1":
        return {"success": True, "message": "Đã logout token test"}

    AccessTokenModel.revoke_token(raw_token)
    return {"success": True, "message": "Đăng xuất thành công"}