feat: GET /me endpoint

This commit is contained in:
2026-08-03 10:23:44 +07:00
parent dee2cad540
commit 680c15414c
4 changed files with 41 additions and 3 deletions

View File

@@ -4,5 +4,12 @@ from .auth import router as auth_router
from .orders import router as orders_router from .orders import router as orders_router
from .payments import payment_routers from .payments import payment_routers
from .plans import router as plans_router 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
View File

@@ -0,0 +1,3 @@
from .me import router as me_router
users_routers = [me_router]

19
routes/users/me.py Normal file
View 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
)

View File

@@ -1,6 +1,15 @@
from datetime import datetime
from pydantic import BaseModel, Field from pydantic import BaseModel, Field
class SubscriptionData(BaseModel):
devices: int = Field()
expires_at: datetime = Field()
addon_ids: list[str] = Field()
class UserInfo(BaseModel): class UserInfo(BaseModel):
username: str | None = Field() username: str | None = Field(None)
telegram_id: str | None = Field() telegram_id: str | None = Field(None)
subscription: SubscriptionData | None = Field(None)