from backend.application.signin_hub import SignInHub from pydantic import BaseModel from fastapi import APIRouter from common.token.token_manager import TokenManager from fastapi import APIRouter, Depends from fastapi.encoders import jsonable_encoder from fastapi.responses import JSONResponse from fastapi import Depends, HTTPException from starlette.status import HTTP_401_UNAUTHORIZED router = APIRouter() token_manager = TokenManager() # Web API # sign_out # class RequestIn(BaseModel): identity: str @router.post( "/sign-out", operation_id="sign-out", summary="sign out a logged in user", description="sign out a logged in user", response_description="none", ) async def sign_out( item: RequestIn, current_user: dict = Depends(token_manager.get_current_user), ): user_id = current_user.get("id") if not user_id: raise HTTPException( status_code=HTTP_401_UNAUTHORIZED, detail="Could not validate credentials" ) result = await SignInHub().sign_out(user_id) return JSONResponse(content=jsonable_encoder(result))