diff --git a/server/reflector/app.py b/server/reflector/app.py index fa148240..14d55d7a 100644 --- a/server/reflector/app.py +++ b/server/reflector/app.py @@ -1,15 +1,17 @@ +from contextlib import asynccontextmanager + +import reflector.auth # noqa +import reflector.db # noqa from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware -from fastapi_pagination import add_pagination from fastapi.routing import APIRoute -import reflector.db # noqa -import reflector.auth # noqa -from reflector.views.rtc_offer import router as rtc_offer_router -from reflector.views.transcripts import router as transcripts_router -from reflector.events import subscribers_startup, subscribers_shutdown +from fastapi_pagination import add_pagination +from reflector.events import subscribers_shutdown, subscribers_startup from reflector.logger import logger from reflector.settings import settings -from contextlib import asynccontextmanager +from reflector.views.rtc_offer import router as rtc_offer_router +from reflector.views.transcripts import router as transcripts_router +from reflector.views.user import router as user_router try: import sentry_sdk @@ -50,6 +52,7 @@ app.add_middleware( # register views app.include_router(rtc_offer_router) app.include_router(transcripts_router, prefix="/v1") +app.include_router(user_router, prefix="/v1") add_pagination(app) diff --git a/server/reflector/views/user.py b/server/reflector/views/user.py new file mode 100644 index 00000000..4952c471 --- /dev/null +++ b/server/reflector/views/user.py @@ -0,0 +1,20 @@ +from typing import Annotated, Optional + +import reflector.auth as auth +from fastapi import APIRouter, Depends +from pydantic import BaseModel + +router = APIRouter() + + +class UserInfo(BaseModel): + sub: str + email: Optional[str] + email_verified: Optional[bool] + + +@router.get("/me") +async def user_me( + user: Annotated[Optional[auth.UserInfo], Depends(auth.current_user_optional)], +) -> UserInfo | None: + return user