20 lines
636 B
Python
20 lines
636 B
Python
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
|
|
)
|