feat: GET /me endpoint
This commit is contained in:
@@ -4,5 +4,12 @@ from .auth import router as auth_router
|
||||
from .orders import router as orders_router
|
||||
from .payments import payment_routers
|
||||
from .plans import router as plans_router
|
||||
from .users import users_routers
|
||||
|
||||
routers: list[APIRouter] = [auth_router, plans_router, orders_router, *payment_routers]
|
||||
routers: list[APIRouter] = [
|
||||
auth_router,
|
||||
plans_router,
|
||||
orders_router,
|
||||
*payment_routers,
|
||||
*users_routers,
|
||||
]
|
||||
|
||||
3
routes/users/__init__.py
Normal file
3
routes/users/__init__.py
Normal file
@@ -0,0 +1,3 @@
|
||||
from .me import router as me_router
|
||||
|
||||
users_routers = [me_router]
|
||||
19
routes/users/me.py
Normal file
19
routes/users/me.py
Normal file
@@ -0,0 +1,19 @@
|
||||
from fastapi import APIRouter, Depends
|
||||
|
||||
from core.deps import get_auth_context
|
||||
from schemas.dto import AuthContext
|
||||
from schemas.user import SubscriptionData, UserInfo
|
||||
|
||||
router = APIRouter(prefix="/users/me")
|
||||
|
||||
|
||||
@router.get("", response_model=UserInfo)
|
||||
async def get_me(ctx: AuthContext = Depends(get_auth_context)):
|
||||
sub_data = SubscriptionData(
|
||||
devices=ctx.user.subscription.devices,
|
||||
expires_at=ctx.user.subscription.expires_at,
|
||||
addon_ids=[a.id for a in ctx.user.subscription.addons],
|
||||
)
|
||||
return UserInfo(
|
||||
username=ctx.user.username, telegram_id=ctx.user.telegram_id, subscription=sub_data
|
||||
)
|
||||
Reference in New Issue
Block a user